Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Av Daniel Larsson och Martin Ekström
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace LibraryProject
- {
- /// <summary>
- /// A service that handles book copies, uses singleton pattern and can only be instantiated/accessed through GetInstance().
- /// </summary>
- class BookCopyService
- {
- private static BookCopyService instance;
- private Database db;
- /// <summary>
- /// Event for when a book copy is added
- /// </summary>
- public event Action Updated = delegate { };
- /// <summary>
- /// Default constructor
- /// </summary>
- private BookCopyService()
- {
- db = Database.GetInstance();
- }
- /// <summary>
- /// Method to instantiate/access the book copy service.
- /// </summary>
- /// <returns>An instance of BookCopyService</returns>
- public static BookCopyService GetInstance()
- {
- if (instance == null)
- instance = new BookCopyService();
- return instance;
- }
- /// <summary>
- /// Method that add a single copy of a book
- /// </summary>
- /// <param name="book">Book of which the copy should be added</param>
- public void AddBookCopy(Book book)
- {
- Book_Copy copy = new Book_Copy
- {
- Fk_Books_Id = book.Id
- };
- db.Book_Copies.AddObject(copy);
- db.SaveChanges();
- Updated();
- }
- /// <summary>
- /// Method to add a number of copies of a book
- /// </summary>
- /// <param name="book">Book of which copies should be added</param>
- /// <param name="nrOfBooks">Number of copies to add</param>
- public void AddBookCopies(Book book, int nrOfBooks)
- {
- for (int i = 0; i < nrOfBooks; i++)
- {
- AddBookCopy(book);
- }
- }
- /// <summary>
- /// Method that returns the number of available copies
- /// </summary>
- /// <returns>Number of available copies</returns>
- public int GetTotalNrOfAvailableCopies()
- {
- int nrOfBookCopies = db.Book_Copies.Count();
- int nrOfLoans = db.Loans.Count();
- return nrOfBookCopies - nrOfLoans;
- }
- }
- }
Add Comment
Please, Sign In to add comment