Beispiel #1
0
        private void Btn_checkout_Click(object sender, RoutedEventArgs e)
        {
            lbl_notFound.Visibility = Visibility.Hidden;
            var checkoutlogs = _checkoutLogRepository.GetAll();

            var books       = _bookRepository.GetAll();
            var cardholders = _cardholderRepository.GetAll();

            var book       = books.Where(x => x.ISBN.Equals(txt_ISBN.Text)).FirstOrDefault();
            var cardholder = cardholders.Where(x => x.LibraryCardID.Equals(txt_libraryCard.Text)).FirstOrDefault();

            if (cardholder != null || book != null)
            {
                CheckOutLog checkOutLog = new CheckOutLog
                {
                    BookID       = book.BookID,
                    CardholderID = cardholder.ID,
                    CheckOutDate = DateTime.Now
                };
                if (_librarianHelper.CanCheckOut(book, cardholder.ID))
                {
                    var checkedout = _checkoutLogRepository.Add(checkOutLog);
                    SetLabel(false, "out");
                }
                else
                {
                    SetLabel(true, "");
                }
            }
            else
            {
                SetLabel(true, ". ISBN or Library Card is invalid.");
            }
        }
Beispiel #2
0
        public void TestInitialize()
        {
            mockBookDbSet        = new Mock <DbSet <Book> >();
            mockCheckOutLogDbSet = new Mock <DbSet <CheckOutLog> >();

            expectedBook = new Book
            {
                BookID         = 1,
                ISBN           = "123456789",
                Title          = "pro",
                AuthorID       = 12,
                NumberPages    = 500,
                Subject        = "subject",
                Description    = "description",
                Publisher      = "publisher",
                Language       = "language",
                NumberOfCopies = 3
            };

            expectedCheckOutLog = new CheckOutLog
            {
                CardholderID = 1,
                BookID       = expectedBook.BookID,
                CheckOutDate = DateTime.Now
            };

            mockLibraryInfoContext = new Mock <LibraryInfoEntities>();
            mockLibraryInfoContext.Setup(m => m.Books).Returns(mockBookDbSet.Object);
            mockLibraryInfoContext.Setup(m => m.CheckOutLogs).Returns(mockCheckOutLogDbSet.Object);
        }
Beispiel #3
0
 public static bool IsBookOverdue(CheckOutLog checkoutLog)
 {
     using (var db = new LibraryInfoEntities())
     {
         var dueDate = DateTime.Now.AddDays(-30);
         return(checkoutLog.CheckOutDate <= dueDate);
     }
 }
Beispiel #4
0
        public bool CheckOutBook(CheckOutLog checkOutLog)
        {
            var checkedOut = _checkOutLogSqlRepository.Add(checkOutLog);

            if (checkedOut != null)
            {
                return(true);
            }
            return(false);
        }
Beispiel #5
0
 /// <summary>
 /// When given a CheckOutLogBLL the corresponding CheckOutLog is found in the database and removed.
 /// </summary>
 /// <param name="log"></param>
 public void RemoveLogFromDatabase(CheckOutLogBLL log)
 {
     using (LibraryDBEntities context = new LibraryDBEntities())
     {
         CheckOutLog checkOutLog = (from l in context.CheckOutLogs
                                    where l.CheckOutLogID == log.CheckOutLogID
                                    select l).FirstOrDefault();
         context.CheckOutLogs.Remove(checkOutLog);
         context.SaveChanges();
         logs.Remove(log);
     }
     Sort();
 }
Beispiel #6
0
 public static void CheckOutBook(Book book, Cardholder cardholder)
 {
     using (var db = new LibraryInfoEntities())
     {
         CheckOutLog checkOutLog = new CheckOutLog
         {
             BookID       = book.BookID,
             CardholderID = cardholder.ID,
             CheckOutDate = DateTime.Now
         };
         db.CheckOutLogs.Add(checkOutLog);
         db.SaveChanges();
         MessageBox.Show($"{cardholder.LibraryCardID} has checked out '{book.Title}'");
     }
 }
Beispiel #7
0
        public static List <CheckOutLog> GetCheckOutLogsFromXmlDoc()
        {
            var checkOutLogXml = (from co in (XDocument.Load(GetFullFileName("CheckOutLog.xml")).Descendants("CheckOutLog")) select co)
                                 .ToList();
            List <CheckOutLog> checkOutLogs = new List <CheckOutLog>(checkOutLogXml.Count);

            foreach (var c in checkOutLogXml)
            {
                var _checkOutLog = new CheckOutLog();
                _checkOutLog.CardholderID = int.Parse(c.Element("CardholderID").Value);
                _checkOutLog.BookID       = int.Parse(c.Element("BookID").Value);
                _checkOutLog.CheckOutDate = DateTime.Parse(c.Element("CheckOutDate").Value);
                checkOutLogs.Add(_checkOutLog);
            }

            return(checkOutLogs);
        }
Beispiel #8
0
 /// <summary>
 /// Adds a given CheckOutLogBLL as a CheckOutLog to the database.
 /// </summary>
 /// <param name="log"></param>
 public void AddLogToDatabase(CheckOutLogBLL log)
 {
     using (LibraryDBEntities context = new LibraryDBEntities())
     {
         CheckOutLog newLog = new CheckOutLog()
         {
             CheckOutLogID = log.CheckOutLogID,
             CheckOutDate  = log.CheckOutDate,
             CardholderID  = log.CardholderID,
             BookID        = log.BookID
         };
         context.CheckOutLogs.Add(newLog);
         context.SaveChanges();
         logs.Add(log);
     }
     Sort();
 }
Beispiel #9
0
 public static void CheckInBook(Book book, Cardholder cardholder)
 {
     using (var db = new LibraryInfoEntities())
     {
         CheckOutLog checkOutLog = db.CheckOutLogs.FirstOrDefault(c => c.BookID == book.BookID && c.CardholderID == cardholder.ID);
         if (checkOutLog != null)
         {
             db.CheckOutLogs.Remove(checkOutLog);
             db.SaveChanges();
             MessageBox.Show($"{cardholder.LibraryCardID} has checked in '{book.Title}'");
         }
         else
         {
             MessageBox.Show($"{cardholder.LibraryCardID} and '{book.Title}' do not exist together in the checkout log.");
         }
     }
 }
Beispiel #10
0
        static void Main(string[] args)
        {
            var serviceProvider = new ServiceCollection()
                                  .AddSingleton <ILibrarianHelper, LibrarianHelper>()
                                  .AddSingleton <IBookHelper, BookHelper>()
                                  .AddTransient <IGenericSqlRepository <Librarian>, LibrarianRepository>()
                                  .AddTransient <IGenericSqlRepository <CheckOutLog>, CheckoutLogRepository>()
                                  .BuildServiceProvider();

            Database.SetInitializer <LibraryContext>(new LibraryInitializer());



            LibrarianRepository librarianRepository = new LibrarianRepository();
            var t = librarianRepository.GetAll();

            #region Check UserName and Password is true
            var librarianHelper = serviceProvider.GetService <ILibrarianHelper>();
            var isUserLogin     = librarianHelper.IsUserLogin("hoyoung", "holim1");
            #endregion

            #region Search Book
            // initialize BookHelper
            var bookHelper = serviceProvider.GetService <IBookHelper>();

            // find books search
            var z = bookHelper.FindBooksSearch("Andrew;Programming");
            var d = bookHelper.FindBooksSearch("Science Fiction");

            #endregion

            #region Check out book
            BookRepository bookRepository = new BookRepository();

            var book            = bookRepository.Find(5);
            var canUserCheckout = librarianHelper.CanCheckOut(book, 16);

            CheckOutLog checkOutLog = new CheckOutLog
            {
                BookID       = 5,
                CardholderID = 10,
                CheckOutDate = DateTime.Now
            };
            CheckoutLogRepository checkoutlogRepository = new CheckoutLogRepository();

            if (canUserCheckout)
            {
                var checkedOut = checkoutlogRepository.Add(checkOutLog);
            }


            var found = checkoutlogRepository.GetAll().Where(x => x.BookID == checkOutLog.BookID &&
                                                             x.CardholderID == checkOutLog.CardholderID)
                        .Select(x => x).ToList();



            #endregion

            #region Update Check Out Log

            checkOutLog.BookID = 7;
            var checkOut = checkoutlogRepository.Update(checkOutLog);


            #endregion

            #region Delete Checkoutlog

            var foundCol = checkoutlogRepository.Find(8);
            checkoutlogRepository.Delete(8);
            foundCol = checkoutlogRepository.Find(8);


            #endregion
        }