public async Task <ServiceResponse <BorrowBookDTO_ToReturn> > UpdateBorrowBook(BorrowBookDTO_ToUpdate UpdateBorrowBook, int id)
        {
            var oldDataBorrowBook = await _dbContext.BorrowBooks.FirstOrDefaultAsync(x => x.Id == id);

            var book = await _dbContext.Books.FirstOrDefaultAsync(x => x.Id == oldDataBorrowBook.BookId);

            if (UpdateBorrowBook.ReturnDate > oldDataBorrowBook.DueDate)
            {
                int lateDate = UpdateBorrowBook.ReturnDate.Day - oldDataBorrowBook.DueDate.Day;

                oldDataBorrowBook.TotalLatePrice = lateDate * book.LatePrice;
                oldDataBorrowBook.ReturnDate     = UpdateBorrowBook.ReturnDate;
                oldDataBorrowBook.AdminId        = UpdateBorrowBook.AdminId;
                oldDataBorrowBook.TotalAmount    = oldDataBorrowBook.TotalPrice + oldDataBorrowBook.TotalLatePrice;
            }
            else
            {
                oldDataBorrowBook.ReturnDate  = UpdateBorrowBook.ReturnDate;
                oldDataBorrowBook.AdminId     = UpdateBorrowBook.AdminId;
                oldDataBorrowBook.TotalAmount = oldDataBorrowBook.TotalPrice + oldDataBorrowBook.TotalLatePrice;
            }
            var borrowBook = await _dbContext.BorrowBooks.Include(x => x.Books).ThenInclude(x => x.CategoryBooks).Include(x => x.Customers).Where(x => x.Id == oldDataBorrowBook.Id).FirstOrDefaultAsync();

            return(ResponseResult.Success(_mapper.Map <BorrowBookDTO_ToReturn>(borrowBook)));
        }
예제 #2
0
 public async Task <IActionResult> UpdateBorrowBook(BorrowBookDTO_ToUpdate UpdateBorrowBook, int id)
 {
     return(Ok(await _borrowBookService.UpdateBorrowBook(UpdateBorrowBook, id)));
 }