Ejemplo n.º 1
0
        // GET: Return book copy
        public IActionResult Return(int id)
        {
            var date         = loanService.ReturnDate();
            var loanToReturn = loanService.GetLoanById(id);
            var vm           = new LoanReturnVm();

            vm.ID         = id;
            vm.LoanTime   = loanToReturn.LoanTime;
            vm.ReturnTime = loanToReturn.ReturnTime;
            vm.MemberID   = loanToReturn.Member.ID;
            vm.BookCopyID = loanToReturn.BookCopy.ID;
            if (vm.ReturnTime.Date < date)
            {
                vm.Delayed = true;

                if (vm.Delayed == true)
                {
                    vm.Fine = loanService.FineIncrease(vm.ReturnTime);
                }
                else
                {
                    vm.Fine = loanToReturn.Fine;
                }
            }
            else
            {
                vm.Delayed = false;
            }
            return(View(vm));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Return(LoanReturnVm vm)
        {
            var loan         = loanService.GetLoanById(vm.ID);
            var date         = loanService.ReturnDate();
            var returnedLoan = new Loan(); // Spara i ny lista av lån

            returnedLoan.ID         = vm.ID;
            returnedLoan.BookCopy   = bookCopyService.GetBookCopyById(vm.BookCopyID);
            returnedLoan.LoanTime   = loan.LoanTime;
            returnedLoan.ReturnTime = loan.ReturnTime;
            returnedLoan.MemberID   = vm.MemberID;
            returnedLoan.BookCopyID = returnedLoan.BookCopy.ID;
            if (returnedLoan.ReturnTime.Date < date)
            {
                returnedLoan.Delayed = true;

                if (returnedLoan.Delayed == true)
                {
                    returnedLoan.Fine = loanService.FineIncrease(returnedLoan.ReturnTime);
                }
            }
            else if (returnedLoan.ReturnTime.Date > date)
            {
                returnedLoan.Delayed = false;
                returnedLoan.Fine    = vm.Fine;
            }
            returnedLoan.Returned        = true;
            returnedLoan.BookCopy.OnLoan = false;
            returnedLoan.BookCopy.Details.CopiesAvailable += bookService.GetNumberOfAvailableCopies(returnedLoan.BookCopy.Details);
            AddReturnedLoan(returnedLoan); //Skickar informationen till en ny lista
            bookService.UpdateBookDetails(returnedLoan.BookCopy.Details);
            loanService.ReturnLoan(returnedLoan);
            return(RedirectToAction(nameof(Index)));
        }