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."); } }
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); }
public static bool IsBookOverdue(CheckOutLog checkoutLog) { using (var db = new LibraryInfoEntities()) { var dueDate = DateTime.Now.AddDays(-30); return(checkoutLog.CheckOutDate <= dueDate); } }
public bool CheckOutBook(CheckOutLog checkOutLog) { var checkedOut = _checkOutLogSqlRepository.Add(checkOutLog); if (checkedOut != null) { return(true); } return(false); }
/// <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(); }
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}'"); } }
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); }
/// <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(); }
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."); } } }
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 }