public async Task <IActionResult> Extend(uint?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var borrow = await _context.Borrow.FirstOrDefaultAsync(m => m.Id == id);

            if (borrow == null)
            {
                return(NotFound());
            }

            var BorrowDetailViewModel = new BorrowDetailViewModel
            {
                BorrowId         = borrow.Id,
                LendDate         = borrow.LendDate,
                ExpectReturnDate = borrow.ExpectReturnDate,
                DelayDays        = borrow.DelayDays,
                DelayExpense     = borrow.DelayExpense,
                RemainingDays    = CountRemainDays(borrow.ExpectReturnDate)
            };

            return(View(BorrowDetailViewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Details(int?id)
        {
            var user = await GetCurrentUserAsync();

            var book = await _context.Book
                       .Include(b => b.User)
                       .Include(b => b.Category)
                       .Include(b => b.Author)
                       .Include(b => b.Borrows)
                       .Include(b => b.WishLists)
                       .FirstOrDefaultAsync(b => b.BookId == id);

            var borrow = await _context.Borrow
                         .Include(br => br.User)
                         .Where(b => b.UserId == user.Id)
                         .FirstOrDefaultAsync(b => b.BookId == id);

            BorrowDetailViewModel detailsViewModel = new BorrowDetailViewModel
            {
                Book = book
            };

            foreach (var br in book.Borrows)
            {
                if (book.BookId == br.BookId && br.DateReturned == null /* && br.UserId == user.Id && book.UserId != user.Id*/)
                {
                    detailsViewModel.borrow     = borrow;
                    detailsViewModel.IsBorrowed = true;
                }
                else
                {
                    detailsViewModel.borrow     = borrow;
                    detailsViewModel.IsBorrowed = false;
                }
            }

            var wishList = await _context.wishList
                           .Include(br => br.User)
                           .Where(b => b.UserId == user.Id)
                           .FirstOrDefaultAsync(b => b.BookId == id);

            foreach (var w in book.WishLists)
            {
                if (w.UserId == user.Id)
                {
                    detailsViewModel.wishLists    = wishList;
                    detailsViewModel.IsWishListed = true;
                }
                else
                {
                    detailsViewModel.wishLists    = wishList;
                    detailsViewModel.IsWishListed = false;
                }
            }

            if (id == null)
            {
                return(NotFound());
            }
            if (book == null)
            {
                return(NotFound());
            }
            return(View(detailsViewModel));
        }