public void saveBorrow(string[] listShop, string UserID, string dtPersian, long totalPrice) { using (var db = _iServiceProvider.GetRequiredService <ApplicationDbContext>()) { using (var transaction = db.Database.BeginTransaction()) { try { foreach (var item in listShop) { BorrowBook br = new BorrowBook(); try { br.BookId = Convert.ToInt32(item); } catch (Exception ex) { continue; } br.UserId = UserID; br.Flag = 1; br.DateTimeRequest = dtPersian; br.Price = (from b in db.books where b.BookId == br.BookId select b.Price).SingleOrDefault(); db.borrowBooks.Add(br); } var query_wallet = (from u in db.Users where u.Id == UserID select u).SingleOrDefault(); if (query_wallet != null) { query_wallet.Wallet = query_wallet.Wallet - totalPrice; } db.SaveChanges(); transaction.Commit(); } catch { } } } }
public void EditBorrowBook(int id, BorrowBookPlus newBorrowBookPlus) { using (var transaction = new TransactionScope()) { try { BorrowBook newBorrowBook = newBorrowBookPlus.BorrowBook; BorrowBook oldBorrowBook = _context.BorrowBook.Where(oldRB => oldRB.Id == id).SingleOrDefault(); if (oldBorrowBook != null) { oldBorrowBook.BorrowBookCode = newBorrowBook.BorrowBookCode; oldBorrowBook.BorrowDate = newBorrowBook.BorrowDate; oldBorrowBook.NumberOfDayBorrow = newBorrowBook.NumberOfDayBorrow; oldBorrowBook.Description = newBorrowBook.Description; oldBorrowBook.Student_Id = newBorrowBook.Student_Id; oldBorrowBook.IsReturn = newBorrowBook.IsReturn; _context.SaveChanges(); } else { throw new Exception("Borrow Book doesn't exist"); } // delete all old borrow book detail List <BorrowBookDetail> borrowBookDetails = _context.BorrowBookDetail.Where(item => item.BorrowBook_Id == id).ToList(); _context.BorrowBookDetail.RemoveRange(borrowBookDetails); _context.SaveChanges(); // add all new borrow book detail _context.BorrowBookDetail.AddRange(newBorrowBookPlus.BorrowBookDetails); _context.SaveChanges(); transaction.Complete(); } catch (Exception ex) { transaction.Dispose(); throw new Exception("Error from BorrowBookDAL: " + ex.Message.ToString()); } } }
public async void ItShouldValidateIfUserHasBorrowedACopyOfTheSameBook() { var borrowBook = new BorrowBook(_loanRepository, _bookRepository); string isbn = "9781449331818"; var books = _bookRepository.ReadAll().ToList(); Guid userId = Guid.NewGuid(); var borrowed1 = await borrowBook.Borrow(userId, books.ElementAt(0).Id); //var borrowed2 = await borrowBook.Borrow(userId, books.ElementAt(1).Id); var firstValidation = await borrowBook.UserHasAlreadyBorrowedACopyOfTheSameBook(userId, books.ElementAt(1).Id); Assert.True(firstValidation); var secondValidation = await borrowBook.UserHasAlreadyBorrowedACopyOfTheSameBook(userId, books.ElementAt(2).Id); Assert.False(secondValidation); }
public void DeleteBorrowBook(int id) { using (var transaction = new TransactionScope()) { try { BorrowBook borrowBook = _context.BorrowBook.Where(rb => rb.Id == id).FirstOrDefault(); List <BorrowBookDetail> borrowBookDetails = _context.BorrowBookDetail.Where(bbd => bbd.BorrowBook_Id == borrowBook.Id).ToList(); _context.BorrowBookDetail.RemoveRange(borrowBookDetails); _context.SaveChanges(); _context.Remove(borrowBook); _context.SaveChanges(); transaction.Complete(); } catch (Exception ex) { transaction.Dispose(); throw new Exception("Error from BorrowBookDAL: " + ex.Message.ToString()); } } }
//Get borrowBook based on borrowId public BorrowBook GetBorrowBookByBorrowId(string borrowId) { //Preparing SQL statements string sql = "Select BorrowId,MemberId,BorrowedNum,OverdueNum from BorrowBook Where BorrowId=@BorrowId"; //Prepare parameters SqlParameter[] para = new SqlParameter[] { new SqlParameter("@BorrowId", borrowId), }; //Read try { SqlDataReader objReader = SQLHelper.GetReader(sql, para); if (!objReader.HasRows) { return(null); } BorrowBook objBorrowBook = new BorrowBook(); if (objReader.Read()) { objBorrowBook = new BorrowBook() { BorrowId = objReader["BorrowId"].ToString(), MemberId = objReader["MemberId"].ToString(), BorrowedNum = Convert.ToInt32(objReader["BorrowedNum"]), OverdueNum = Convert.ToInt32(objReader["OverdueNum"]), }; } //Close Read objReader.Close(); //return return(objBorrowBook); } catch (Exception ex) { throw ex; } }
public void DeleteReturnBook(int id) { using (var transaction = new TransactionScope()) { try { ReturnBook returnBook = _context.ReturnBook.Where(rb => rb.Id == id).FirstOrDefault(); List <ReturnBookDetail> returnBookDetails = _context.ReturnBookDetail.Where(rbd => rbd.ReturnBook_Id == returnBook.Id).ToList(); foreach (ReturnBookDetail returnBookDetail in returnBookDetails) { // update Inventory of Book if (returnBookDetail.Book_Id != null) { _bookDAL.UpdateInventory((int)returnBookDetail.Book_Id, (int)-returnBookDetail.Quantity); } _context.Remove(returnBookDetail); _context.SaveChanges(); } // update state of borrow book BorrowBook borrowBook = _context.BorrowBook.Find(returnBook.BorrowBook_Id); if (borrowBook != null) { borrowBook.IsReturn = false; _context.SaveChanges(); } _context.Remove(returnBook); _context.SaveChanges(); transaction.Complete(); } catch (Exception ex) { transaction.Dispose(); throw new Exception("Error from ReturnBookDAL: " + ex.Message.ToString()); } } }
//Add a BorrowBoo to see the record public int AddBorrowBook(BorrowBook objBorrowBook) { //Preparing SQL statements string sql = "Insert into BorrowBook(BorrowId,MemberId,BorrowedNum,OverdueNum) Values(@BorrowId,@MemberId,@BorrowedNum,@OverdueNum)"; //Prepare parameters SqlParameter[] para = new SqlParameter[] { new SqlParameter("@BorrowId", objBorrowBook.BorrowId), new SqlParameter("@MemberId", objBorrowBook.MemberId), new SqlParameter("@BorrowedNum", objBorrowBook.BorrowedNum), new SqlParameter("@OverdueNum", objBorrowBook.OverdueNum), }; //Execute and submit try { return(SQLHelper.Update(sql, para)); } catch (Exception ex) { throw ex; } }
public ActionResult Add(AddViewModel model) { try { bool member_Penal = _memberService.GetById(model.MemberId).Panel; if (!member_Penal) { BorrowBook record = new BorrowBook(); record.MemberId = model.MemberId; record.BookId = model.BookId; record.CreatedDateTime = DateTime.Now; record.CreatedBy = SessionHelper.CurrentUser.ID; record.ExpirationDateTime = DateTime.Now.AddDays(30); record.IsBring = false; _borrowBookService.Add(record); return(RedirectToAction("Add", "BorrowBook", new { IsSuccess = "True" })); } else { return(RedirectToAction("Add", "BorrowBook", new { IsSuccess = "Penal" })); } } catch { return(RedirectToAction("Add", "BorrowBook", new { IsSuccess = "False" })); } }
public void EditReturnBook(int id, ReturnBookPlus newReturnBookPlus) { using (var transaction = new TransactionScope()) { try { ReturnBook newReturnBook = newReturnBookPlus.ReturnBook; ReturnBook oldReturnBook = _context.ReturnBook.Where(oldRB => oldRB.Id == id).SingleOrDefault(); // change borrow book state if (oldReturnBook.BorrowBook_Id != newReturnBook.BorrowBook_Id) { BorrowBook borrowBookNew = _context.BorrowBook.Find(newReturnBook.BorrowBook_Id); BorrowBook borrowBookOld = _context.BorrowBook.Find(oldReturnBook.BorrowBook_Id); borrowBookNew.IsReturn = true; borrowBookOld.IsReturn = false; _context.SaveChanges(); } if (oldReturnBook != null) { oldReturnBook.ReturnBookCode = newReturnBook.ReturnBookCode; oldReturnBook.ReturnDate = newReturnBook.ReturnDate; oldReturnBook.Description = newReturnBook.Description; oldReturnBook.BorrowBook_Id = newReturnBook.BorrowBook_Id; _context.SaveChanges(); } else { throw new Exception("Return Book doesn't exist"); } // delete all old borrow book detail List <ReturnBookDetail> returnBookDetails = _context.ReturnBookDetail.Where(item => item.ReturnBook_Id == id).ToList(); _context.ReturnBookDetail.RemoveRange(returnBookDetails); _context.SaveChanges(); // add all new borrow book detail _context.ReturnBookDetail.AddRange(newReturnBookPlus.ReturnBookDetails); _context.SaveChanges(); transaction.Complete(); //foreach (ReturnBookDetail newReturnBookDetail in newReturnBookPlus.ReturnBookDetails) //{ // ReturnBookDetail oldReturnBookDetail = _context.ReturnBookDetail. // Where(rbDetail => rbDetail.Id == newReturnBookDetail.Id).SingleOrDefault(); // //if (newReturnBookDetail.Book_Id != null) // //{ // // // update Inventory of Book // // //int? quantityOfUpdate = newReturnBookDetail.Quantity - oldReturnBookDetail.Quantity; // // //_bookDAL.UpdateInventory((int)newReturnBookDetail.Book_Id, (int)quantityOfUpdate); // //} // if (newReturnBookDetail != null && newReturnBookDetail.Id != 0 && oldReturnBookDetail != null) // { // oldReturnBookDetail.ReturnBookDetailCode = newReturnBookDetail.ReturnBookDetailCode; // oldReturnBookDetail.Quantity = newReturnBookDetail.Quantity; // oldReturnBookDetail.Description = newReturnBookDetail.Description; // oldReturnBookDetail.Book_Id = newReturnBookDetail.Book_Id; // oldReturnBookDetail.ReturnBook_Id = newReturnBookDetail.ReturnBook_Id; // _context.SaveChanges(); // } // else // { // transaction.Dispose(); // throw new Exception("Return Book Detail doesn't not exist"); // } //} } catch (Exception ex) { transaction.Dispose(); throw new Exception("Error from ReturnBookDAL: " + ex.Message.ToString()); } } }
public async Task <ActionResult> Post([FromBody] BorrowBook command) { await CommandDispatcher.DispatchAsync(command); return(Created("borrows", null)); }
public async Task <IActionResult> CreateBorrowBook(BorrowBook borrow) { var date = DateTime.Today.Month; var timesBorrow = _context.BorrowBooks.Where(x => x.UserId == borrow.UserId && x.BorrowDate.Month == date); if (timesBorrow.Count() > 2) { return(BadRequest("Ban da het lan muon trong thang")); } var items = 0; foreach (var i in timesBorrow) { var val = _context.BorrowBookDetails.Where(x => x.BorrowBookId == i.BorrowBookId).Sum(x => x.Quantity); items += val; } if (items >= 5) { return(BadRequest("Bạn đã hết số lần mượn trong tháng")); } if (borrow.BorrowBookDetails != null && borrow.BorrowBookDetails.Any()) { var borrowed = borrow.BorrowBookDetails.Sum(x => x.Quantity); if (borrowed > 5) { return(BadRequest("Ban chi duoc muon it hon 5 quyen")); } if ((borrowed + items) > 5) { return(BadRequest("Ban chi dc muon it hon" + (5 - borrowed))); } var newborrow = new BorrowBook { BorrowDate = borrow.BorrowDate, Status = borrow.Status, UserId = borrow.UserId }; _context.BorrowBooks.Add(newborrow); _context.SaveChanges(); var id = newborrow.BorrowBookId; foreach (var itemdetail in borrow.BorrowBookDetails) { var detail = new BorrowBookDetail { BorrowBookId = id, BookId = itemdetail.BookId, Quantity = itemdetail.Quantity }; _context.BorrowBookDetails.Add(detail); } await _context.SaveChangesAsync(); return(Ok("Successed!")); } return(BadRequest("Danh sach muon trong")); }
public async Task AddBorrowBookDetail(List <BorrowBookDetailDto> input) { List <string> errorList = new List <string>(); DateTime today = DateTime.Now; //Add id BorrowBook var borrowBook = new BorrowBook { DateBorrow = today }; await _borrowBookRepository.InsertAsync(borrowBook); int allTotal = 0; var items = _bookLibraryRepository.GetAll(); //Add borrow book detail foreach (var borrowBookDetail in input) { var addBorrowBookDetail = new BorrowBookDetail { Qty = borrowBookDetail.Qty, BookId = borrowBookDetail.BookId, LibraryId = borrowBookDetail.LibraryId, PriceBorrow = borrowBookDetail.PriceBorrow, Total = borrowBookDetail.Qty * borrowBookDetail.PriceBorrow, BorrowBookId = borrowBook.Id }; allTotal = allTotal + (borrowBookDetail.Qty * borrowBookDetail.PriceBorrow); BorrowBookDetailValiadtor validator = new BorrowBookDetailValiadtor(); ValidationResult validationResult = validator.Validate(addBorrowBookDetail); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { errorList.Add(string.Format("Error: {0}", error.ErrorMessage)); } string errorString = string.Join(" ", errorList.ToArray()); throw new UserFriendlyException(errorString); } await _borrowBookDetailRepository.InsertAsync(addBorrowBookDetail); var book = items.Where(s => s.BookId == borrowBookDetail.BookId && s.LibraryId == borrowBookDetail.LibraryId) .FirstOrDefault(); if (borrowBookDetail.Qty > book.Stock) { throw new UserFriendlyException(string.Format("{0} have {1} in stock", book.Book.Name, book.Stock)); } else { book.Stock = book.Stock - addBorrowBookDetail.Qty; await _bookLibraryRepository.UpdateAsync(book); } } //Update BorrowBook TimeSpan aInterval = new System.TimeSpan(5, 0, 0, 0); DateTime newTime = today.Add(aInterval); borrowBook.Total = allTotal; borrowBook.Status = "Đang xử lý"; borrowBook.DateRepay = newTime; borrowBook.UserId = AbpSession.UserId.Value; await _borrowBookRepository.InsertAsync(borrowBook); }
public bool UpdateBorrowBook(BorrowBook borrowBook) { _unitOfWork.BorrowBookRepository.Update(borrowBook); _unitOfWork.SaveChanges(); return(true); }