public string Add(BookLoans BookLoans)
        {
            if (new BookLoanRepository(context).GetByIsbn(BookLoans.Isbn).Count(x => x.bookLoan.DateIn == null) > 0)
            {
                new BooksRepository(context).markCheckedOut(BookLoans.Isbn);
                context.SaveChanges();
                return("This book is checked out and no longer available.");
            }

            if (new BorrowerRepository(context).GetById(BookLoans.CardId).Count() == 0)
            {
                return("Invalid Card number.");
            }

            var existing = (from bl in context.BookLoans
                            join b in context.Book on bl.Isbn equals b.Isbn
                            where b.IsCheckedOut == true && bl.CardId == BookLoans.CardId
                            select b).ToList();

            if (existing.Count >= 3)
            {
                StringBuilder sb = new StringBuilder();
                existing.ForEach(x => sb.Append(x.Isbn + " "));
                return("Card Holder has 3 books checked out already: " + sb.ToString()
                       + "Can not Check out any more.");
            }

            BookLoans.DateOut = DateTime.Today;
            BookLoans.DueDate = DateTime.Today.AddDays(14);
            new BooksRepository(context).markCheckedOut(BookLoans.Isbn);
            context.BookLoans.Add(BookLoans);
            return(null);
        }
        public string Add(string isbn, string cardId)
        {
            BookLoans BookLoan = new BookLoans();

            BookLoan.Isbn   = isbn;
            BookLoan.CardId = cardId;
            return(Add(BookLoan));
        }
 public JsonResult Post([FromBody] BookLoans loan)
 {
     using (var ctx = new libraryContext())
     {
         var BkLnRepo = new BookLoanRepository(ctx);
         var result   = BkLnRepo.Add(loan);
         if (result == null)
         {
             ctx.SaveChanges();
             return(Json(new { message = "Success" }));
         }
         else
         {
             return(Json(new { error = result }));
         }
     }
 }
 public void Update(BookLoans bookLoans)
 {
     bookLoans.DateIn = DateTime.Today;
     new BooksRepository(context).markCheckedIn(bookLoans.Isbn);
 }
 public void Delete(BookLoans bor)
 {
     context.BookLoans.Remove(bor);
 }