Пример #1
0
        public IActionResult RenewList()
        {
            string      userId    = _userManager.GetUserId(User);
            List <Loan> userLoans = _loanRepository.GetCurrentLoansByUserId(userId).ToList();
            List <LoanWithBookDetails> loansWithDetails = new List <LoanWithBookDetails>();

            foreach (var loan in userLoans)
            {
                var loanPlusDetails = new LoanWithBookDetails();
                // var loanPlusDetails = _appDbContext.LoansWithBookDetails;

                loanPlusDetails.BookId     = loan.LoanBookId;
                loanPlusDetails.BookIdent  = loan.LoanBookIdent;
                loanPlusDetails.UserId     = loan.UserId;
                loanPlusDetails.BorrowDate = loan.BorrowDate;
                DateTime tempScheduleReturnDate = loan.ScheduleReturnDate;
                loanPlusDetails.ScheduleReturnDate = tempScheduleReturnDate.Date;
                loanPlusDetails.TimesRenewed       = loan.TimesRenewed;

                var bookDetails = _bookRepository.GetBookByIdent(loan.LoanBookIdent);
                loanPlusDetails.Name                  = bookDetails.Name;
                loanPlusDetails.Author                = bookDetails.Author;
                loanPlusDetails.Description           = bookDetails.Description;
                loanPlusDetails.BookCoverThumbnailUrl = bookDetails.BookCoverThumbnailUrl;

                loansWithDetails.Add(loanPlusDetails);
            }

            var loanMessage = "My Loans";

            if (!userLoans.Any())
            {
                loanMessage = loanMessage + ": No Current Loans";
            }

            var renewViewModel = new RenewViewModel()
            {
                LoanMessage   = loanMessage,
                LoanRenewList = loansWithDetails
            };

            return(View(renewViewModel));
        }
Пример #2
0
        public IActionResult RenewList(string bookIdent)
        {
            string userId     = _userManager.GetUserId(User);
            var    localLoan  = _loanRepository.GetLoanByBookIdent(bookIdent);
            var    localBook  = _bookRepository.GetBookByIdent(bookIdent);
            var    overdueFee = _loanRepository.CalcOverdue(localLoan.LoanId, userId);

            var  renewed           = false;
            var  canRenew          = false;
            var  renewalNotTooSoon = true;
            bool tempTextColRed    = false;
            bool recentBorrow      = false;

            var timesRenewed = localLoan.TimesRenewed;

            if (timesRenewed < 5)
            {
                canRenew = true;
            }

            if (localLoan.LatestRenewDate.AddDays(7) > DateTime.Now)
            {
                renewalNotTooSoon = false;
                if (localLoan.LatestRenewDate == localLoan.BorrowDate)
                {
                    recentBorrow = true;
                }
            }

            if ((canRenew == true) && (renewalNotTooSoon == true))
            {
                renewed = _loanRepository.RenewLoan(localLoan.LoanBookIdent, userId);
            }

            var loanMessage = "";

            if (renewed == true)
            {
                loanMessage = "'" + localBook.Name + "' was Renewed Successfully";
                if (overdueFee > 0)
                {
                    int euros = ((int)overdueFee / 100);
                    int cents = ((int)overdueFee % 100);
                    loanMessage = loanMessage +
                                  "An Overdue fee of " + euros + "," + cents + "€ will apply";
                }
            }
            else if ((renewed == false) && (canRenew == true) && (renewalNotTooSoon == true))
            {
                loanMessage    = "Loan Renewal was Unsuccessful";
                tempTextColRed = true;
            }
            else if ((canRenew == false) && (renewalNotTooSoon == true))
            {
                loanMessage = "Loan Renewal was Unsuccessful. This book has been Renewed a Maximum 5 times";
                if (overdueFee > 0)
                {
                    int euros = ((int)overdueFee / 100);
                    int cents = ((int)overdueFee % 100);
                    loanMessage = loanMessage +
                                  "An Overdue fee of " + euros + "," + cents + "€ will apply";
                }
                tempTextColRed = true;
            }
            else if ((canRenew == true) && (renewalNotTooSoon == false) && recentBorrow == false)
            {
                loanMessage    = "Loan Renewal was Unsuccessful. This book was Renewed less than 1 week ago";
                tempTextColRed = true;
            }
            else if ((canRenew == true) && (renewalNotTooSoon == false) && recentBorrow == true)
            {
                loanMessage    = "Loan Renewal was Unsuccessful. This book was Borrowed less than 1 week ago";
                tempTextColRed = true;
            }


            var userLoans        = _loanRepository.GetCurrentLoansByUserId(userId);
            var loansWithDetails = new List <LoanWithBookDetails>();

            foreach (var loan in userLoans)
            {
                var loanPlusDetails = new LoanWithBookDetails();
                // var loanPlusDetails = _appDbContext.LoansWithBookDetails;

                loanPlusDetails.BookId     = loan.LoanBookId;
                loanPlusDetails.BookIdent  = loan.LoanBookIdent;
                loanPlusDetails.UserId     = loan.UserId;
                loanPlusDetails.BorrowDate = loan.BorrowDate;
                DateTime tempScheduleReturnDate = loan.ScheduleReturnDate;
                loanPlusDetails.ScheduleReturnDate = tempScheduleReturnDate.Date;
                loanPlusDetails.TimesRenewed       = loan.TimesRenewed;

                var bookDetails = _bookRepository.GetBookByIdent(loan.LoanBookIdent);
                loanPlusDetails.Name                  = bookDetails.Name;
                loanPlusDetails.Author                = bookDetails.Author;
                loanPlusDetails.Description           = bookDetails.Description;
                loanPlusDetails.BookCoverThumbnailUrl = bookDetails.BookCoverThumbnailUrl;

                loansWithDetails.Add(loanPlusDetails);
            }

            var renewViewModel = new RenewViewModel()
            {
                LoanRenewList = loansWithDetails,
                LoanMessage   = loanMessage,
                TextColorRed  = tempTextColRed
            };

            return(View(renewViewModel));
        }
Пример #3
0
        public IActionResult LoanList(string includePrevious)
        {
            bool        showOldLoans = bool.Parse(includePrevious);
            string      userId       = _userManager.GetUserId(User);
            List <Loan> userLoans    = _loanRepository.GetCurrentLoansByUserId(userId).ToList();
            List <LoanWithBookDetails> loansWithDetails = new List <LoanWithBookDetails>();
            string loanHistoricMessage = null;

            foreach (var loan in userLoans)
            {
                var loanPlusDetails = new LoanWithBookDetails();

                loanPlusDetails.BookId     = loan.LoanBookId;
                loanPlusDetails.BookIdent  = loan.LoanBookIdent;
                loanPlusDetails.UserId     = loan.UserId;
                loanPlusDetails.BorrowDate = loan.BorrowDate;
                DateTime tempScheduleReturnDate = loan.ScheduleReturnDate;
                loanPlusDetails.ScheduleReturnDate = tempScheduleReturnDate.Date;
                loanPlusDetails.TimesRenewed       = loan.TimesRenewed;

                var bookDetails = _bookRepository.GetBookByIdent(loan.LoanBookIdent);
                loanPlusDetails.Name                  = bookDetails.Name;
                loanPlusDetails.Author                = bookDetails.Author;
                loanPlusDetails.Description           = bookDetails.Description;
                loanPlusDetails.BookCoverThumbnailUrl = bookDetails.BookCoverThumbnailUrl;

                loansWithDetails.Add(loanPlusDetails);
            }

            List <LoanWithBookDetails> loansHistoricWithDetails = new List <LoanWithBookDetails>();

            if (showOldLoans == true)
            {
                List <LoanHistoric> userLoansHistoric = _loanRepository.GetHistoricLoansByUserId(userId).ToList();

                if (userLoansHistoric.Count > 0)
                {
                    loanHistoricMessage = "Previous Loans:";

                    foreach (var loan in userLoansHistoric)
                    {
                        var loanPlusDetails = new LoanWithBookDetails();
                        loanPlusDetails.BookId = loan.LoanBookId;
                        string bookIdent = _bookRepository.GetBookIdentById(loan.LoanBookId);
                        loanPlusDetails.BookIdent        = bookIdent;
                        loanPlusDetails.UserId           = loan.UserId;
                        loanPlusDetails.BorrowDate       = loan.BorrowDate;
                        loanPlusDetails.ActualReturnDate = loan.ActualReturnDate;
                        loanPlusDetails.TimesRenewed     = loan.TimesRenewed;

                        var bookDetails = _bookRepository.GetBookByIdent(bookIdent);
                        loanPlusDetails.Name                  = bookDetails.Name;
                        loanPlusDetails.Author                = bookDetails.Author;
                        loanPlusDetails.Description           = bookDetails.Description;
                        loanPlusDetails.BookCoverThumbnailUrl = bookDetails.BookCoverThumbnailUrl;

                        loansHistoricWithDetails.Add(loanPlusDetails);
                    }
                }
                else
                {
                    loanHistoricMessage      = "No Previous Loans:";
                    loansHistoricWithDetails = null;
                }
            }

            var loanMessage = "My Loans";

            if (!userLoans.Any())
            {
                loanMessage = loanMessage + ": No Current Loans";
            }

            var loansViewModel = new LoanViewModel()
            {
                LoansList = loansWithDetails,
                LoansHistoricWithDetails = loansHistoricWithDetails,
                LoanMessage         = loanMessage,
                LoanHistoricMessage = loanHistoricMessage,
                showHistoric        = showOldLoans
            };

            return(View(loansViewModel));
        }
Пример #4
0
        public IActionResult ReturnList(string bookIdent)
        {
            string userId     = _userManager.GetUserId(User);
            Loan   localLoan  = _loanRepository.GetLoanByBookIdent(bookIdent);
            Book   localBook  = _bookRepository.GetBookByIdent(bookIdent);
            var    overdueFee = _loanRepository.CalcOverdue(localLoan.LoanId, userId);

            var Returned = false;

            Returned = _loanRepository.EndLoan(localLoan.LoanBookIdent, userId);

            string loanMessage = null;

            if (Returned == true)
            {
                loanMessage = "'" + localBook.Name + "' was Successfully Returned";
            }
            else
            {
                loanMessage = "Return of  " + localBook.Name + " was Unsuccessful";
            }

            if (overdueFee > 0)
            {
                int euros = ((int)overdueFee / 100);
                int cents = ((int)overdueFee % 100);
                loanMessage = loanMessage +
                              "An Overdue fee of " + euros + "," + cents + "€  will apply";
            }

            var userLoans        = _loanRepository.GetCurrentLoansByUserId(userId);
            var loansWithDetails = new List <LoanWithBookDetails>();

            foreach (var loan in userLoans)
            {
                var loanPlusDetails = new LoanWithBookDetails();
                // var loanPlusDetails = _appDbContext.LoansWithBookDetails;

                loanPlusDetails.BookId     = loan.LoanBookId;
                loanPlusDetails.BookIdent  = loan.LoanBookIdent;
                loanPlusDetails.BorrowDate = loan.BorrowDate;
                DateTime tempScheduleReturnDate = loan.ScheduleReturnDate;
                loanPlusDetails.ScheduleReturnDate = tempScheduleReturnDate.Date;
                loanPlusDetails.TimesRenewed       = loan.TimesRenewed;

                var bookDetails = _bookRepository.GetBookByIdent(loan.LoanBookIdent);
                loanPlusDetails.Name                  = bookDetails.Name;
                loanPlusDetails.Author                = bookDetails.Author;
                loanPlusDetails.Description           = bookDetails.Description;
                loanPlusDetails.BookCoverThumbnailUrl = bookDetails.BookCoverThumbnailUrl;

                loansWithDetails.Add(loanPlusDetails);
            }

            var returnViewModel = new ReturnViewModel()
            {
                LoanReturnList = loansWithDetails,
                LoanMessage    = loanMessage
            };

            return(View(returnViewModel));
        }