public IActionResult Details(string id) { ObjectId loanId = new ObjectId(id); Loan loan = BookLoanRepository.GetBookLoanByBookLoanId(loanId); return(View(loan)); }
/// <summary> /// Compares start date and end date to already lend out book, if the dates interferes with each other, numberOfCopies -= 1 /// </summary> /// <param name="bookId">the book to borrow</param> /// <param name="numberOfCopies">number of copies of the chosen book</param> /// <param name="date">the selected start date</param> /// <returns>how many copies that remains</returns> public static int Book(ObjectId bookId, int numberOfCopies, DateTime startDate, DateTime endDate) { List <Loan> loans = BookLoanRepository.GetBookLoansById(bookId); foreach (Loan loan in loans) { int checkStartDate = Validations.CompareDates(startDate, loan.StartDate); int checkEndDate = Validations.CompareDates(endDate, loan.EndDate); if (checkStartDate >= 0 && checkEndDate <= 0) { numberOfCopies -= 1; } else if (true) { checkStartDate = Validations.CompareDates(endDate, loan.StartDate); checkEndDate = Validations.CompareDates(endDate, loan.EndDate); if (checkStartDate >= 0 && checkEndDate <= 0) { numberOfCopies -= 1; } } } return(numberOfCopies); }
public IActionResult ConfirmDelete(string id) { ObjectId bookLoanId = new ObjectId(id); BookLoanRepository.DeleteBookLoan(bookLoanId); return(Redirect("/BookLoan")); }
public IActionResult Edit(string id, DateTime startDate, DateTime endDate) { ObjectId loanId = new ObjectId(id); BookLoanRepository.UpdateBookLoan(loanId, startDate, endDate); return(Redirect("/BookLoan")); }
private static void LoanProcessAvailableBooks(Member member, Book book, DateTime startDate, DateTime endDate) { Loan loan = Factory.CreateLoan(startDate, endDate, member); loan.BookArticle = book; BookLoanRepository.InsertBookLoan(loan); StandardMessages.LoanComplete(book.Name, loan.EndDate); }
public JsonResult Get() { using (var ctx = new libraryContext()) { var data = new BookLoanRepository(ctx).GetBookLoans().ToList(); return(Json(data, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })); } }
public static void UpdateBookLoan(Member member) { Loan loanToReturn = SelectLoanById.SelectBookLoan(member); if (loanToReturn != null) { DateTime returnDate = DateTime.Today; BookLoanRepository.ReturnBook(loanToReturn, returnDate); StandardMessages.ItemReturned("book"); } else { StandardMessages.NothingToReturn("books"); } }
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 })); } } }
/// <summary> /// The user selects a book loan by index and gets the chosen book loan returned /// </summary> /// <returns>the chosen book loan</returns> public static Loan SelectBookLoan(Member member) { List <Book> book = BookRepository.GetBooks(); if (book.Count > 0) { List <Loan> loans = BookLoanRepository.GetBookLoansByMember(member); StandardMessages.ListAllItems("your book loans"); int i = 1; foreach (Loan loan in loans) { var outputDate = loan.EndDate.ToString("yyyy-MM-dd"); Console.WriteLine($"{i} {loan.Member.Name} {loan.BookArticle.Name} {outputDate}"); i++; } StandardMessages.SelectItemToDelete("book", "return"); string input = Console.ReadLine(); if (input != "0") { int index = Validations.ParseInt(input); bool isValid = Validations.SelectedIndex(index, i, loans.Count); if (isValid) { return(loans[index - 1]); } else { StandardMessages.InvalidOption(); input = Console.ReadLine(); return(null); } } else { return(null); } } else { StandardMessages.NothingToReturn("books"); return(null); } }
/// <summary> /// Prints all book loans with the id of the book the user wanted to borrow /// </summary> /// <param name="id">book id of the wanted book</param> public static void PrintBookLoansList(ObjectId id) { List <Loan> loans = BookLoanRepository.GetBookLoansById(id); StandardMessages.ListAllItems("loans"); DateTime today = DateTime.Today; foreach (Loan loan in loans) { int result = Validations.CompareDates(today, loan.EndDate); if (result < 0) { var startDate = loan.StartDate.ToString("yyyy-MM-dd"); var endDate = loan.EndDate.ToString("yyyy-MM-dd"); Console.WriteLine($"{loan.BookArticle.Name} - {loan.Member.Name} - {startDate} - {endDate}"); } } }
public IActionResult Create(string memberId, string bookId, DateTime startDate, DateTime endDate) { ObjectId memberOId = new ObjectId(memberId); ObjectId bookOId = new ObjectId(bookId); Book book = BookRepository.GetBookById(bookOId); int copiesRemaining = CheckLoansToCopies.Book(book.Id, book.NumberOfCopies, startDate, endDate); if (copiesRemaining > 0) { Loan loan = CreateLoan(memberOId, book.Id, startDate, endDate); BookLoanRepository.InsertBookLoan(loan); } else if (copiesRemaining <= 0) { string errorMessage = "No availiable copies at that date. Please try an other one"; BookLoanModel bookLoanModel = new BookLoanModel(); bookLoanModel.ErrorMessage = errorMessage; return(View(bookLoanModel)); } return(Redirect("/BookLoan")); }
public IActionResult Index() { List <Loan> loans = BookLoanRepository.GetAllBookLoans(); return(View(loans)); }