diff Library/LibrarySystem/Core/Library.cs @ 41:dbd242eb9c33

Initial wave of TDD development
author adminsh@apollo
date Tue, 03 Apr 2012 23:29:32 +0100
parents
children aef06698d9e2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Library/LibrarySystem/Core/Library.cs	Tue Apr 03 23:29:32 2012 +0100
@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+using System.Linq;
+using LibrarySystem.Interfaces;
+
+namespace LibrarySystem.Core
+{
+    public class Library : ILibrary
+    {
+        public string Location { get; set; }
+        public IList<IStock> StockList { get; set; }
+
+        public Library()
+        {
+            StockList = new List<IStock>(0);
+        }
+
+        public void AddStock(params IBook[] books)
+        {
+            var stock = new List<IStock>(StockList.Count + books.Length);
+
+            stock.AddRange(StockList);
+
+            foreach (var book in books)
+            {
+                stock.Add(new Stock() { Book = book, IsAvailable = true });
+            }
+
+            StockList = stock;
+        }
+
+        public bool IsBookAvailableByISBN(string isbn)
+        {
+            var qry = from books in StockList
+                      where books.Book.ISBN == isbn 
+                            & books.IsAvailable
+                      select books.IsAvailable;
+
+            return qry.FirstOrDefault();
+        }
+
+        public IList<IStock> FindBooks(string searchString)
+        {
+            searchString = searchString.ToLower();
+
+            var qry = from books in StockList
+                      where books.Book.Title.ToLower().Contains(searchString)
+                            || books.Book.Author.ToLower().Contains(searchString)
+                      select books;
+
+            return qry.ToList();
+        }
+
+        public void LendBook(IPerson person, IBook book)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}