public IHttpActionResult GetTransactions(int userID, BookTransactionStatus?status = null) { List <BookTransaction> bookTransactions = new List <BookTransaction>(); if (status == null) { bookTransactions = BookTransactionRepository.GetCacheBookTransactions().Where(x => x.UserID == userID).ToList(); return(Json(bookTransactions.Select(x => new { BookName = BookRepository.GetCacheBooks().FirstOrDefault(y => y.ID == x.BookID).Name, x.DateOfReserved, x.DateOfReturned }))); } else { bookTransactions = BookTransactionRepository.GetCacheBookTransactions().Where(x => x.UserID == userID && x.Status == status).ToList(); return(Json(bookTransactions.Select(x => new { BookName = BookRepository.GetCacheBooks().FirstOrDefault(y => y.ID == x.BookID).Name, x.DateOfReserved, x.DateOfReturned }))); } }
public IHttpActionResult ReserveBook(int bookID, int userID) { try { BookStock bs = BookStockRepository.GetCacheBookStocks().FirstOrDefault(x => x.BookID == bookID && x.Status == BookStockStatus.Available); if (bs == null) { //The stocks of the book you have researched for is insufficient return(Json("0")); } int returnedCount = BookTransactionRepository.GetCacheBookTransactions().Where(x => x.UserID == userID && x.Status != BookTransactionStatus.Returned).Count(); if (returnedCount == 3) { return(Json("-2")); } BookTransaction bt = new BookTransaction(); bt.BookID = bookID; bt.DateOfReserved = DateTime.Now; bt.ExpirationOfReserveDate = DateTime.Now.AddDays(7); bt.UserID = userID; bt.Status = BookTransactionStatus.Reserved; BookTransactionRepository btr = new BookTransactionRepository(); btr.AddEntity(bt); bs.Status = BookStockStatus.Reserved; BookStockRepository bsr = new BookStockRepository(); bsr.UpdateEntity(bs); LogRepository.NewLog(bookID, userID); } catch (Exception) { return(Json("-1")); } return(Json("1")); }