41
|
1 using System.Collections.Generic;
|
|
2 using System.Linq;
|
|
3 using LibrarySystem.Interfaces;
|
|
4
|
|
5 namespace LibrarySystem.Core
|
|
6 {
|
|
7 public class Library : ILibrary
|
|
8 {
|
|
9 public string Location { get; set; }
|
|
10 public IList<IStock> StockList { get; set; }
|
|
11
|
|
12 public Library()
|
|
13 {
|
|
14 StockList = new List<IStock>(0);
|
|
15 }
|
|
16
|
|
17 public void AddStock(params IBook[] books)
|
|
18 {
|
|
19 var stock = new List<IStock>(StockList.Count + books.Length);
|
|
20
|
|
21 stock.AddRange(StockList);
|
|
22
|
|
23 foreach (var book in books)
|
|
24 {
|
|
25 stock.Add(new Stock() { Book = book, IsAvailable = true });
|
|
26 }
|
|
27
|
|
28 StockList = stock;
|
|
29 }
|
|
30
|
|
31 public bool IsBookAvailableByISBN(string isbn)
|
|
32 {
|
|
33 var qry = from books in StockList
|
|
34 where books.Book.ISBN == isbn
|
|
35 & books.IsAvailable
|
|
36 select books.IsAvailable;
|
|
37
|
|
38 return qry.FirstOrDefault();
|
|
39 }
|
|
40
|
|
41 public IList<IStock> FindBooks(string searchString)
|
|
42 {
|
|
43 searchString = searchString.ToLower();
|
|
44
|
|
45 var qry = from books in StockList
|
|
46 where books.Book.Title.ToLower().Contains(searchString)
|
|
47 || books.Book.Author.ToLower().Contains(searchString)
|
|
48 select books;
|
|
49
|
|
50 return qry.ToList();
|
|
51 }
|
|
52
|
|
53 public void LendBook(IPerson person, IBook book)
|
|
54 {
|
|
55 throw new System.NotImplementedException();
|
|
56 }
|
|
57 }
|
|
58 }
|