Пример #1
0
        public ActionResult Create()
        {
            RenewViewModel viewModel = new RenewViewModel();

            viewModel.Date = DateTime.Now;
            //branch select list items
            //BranchService branchService = new BranchService(UnitOfWork);
            viewModel.PawnTicketsSelectListItems = new List <SelectListItem>
            {
                new SelectListItem {
                    Text = "PT0001", Value = "1"
                },
                new SelectListItem {
                    Text = "PT0002", Value = "2"
                },
                new SelectListItem {
                    Text = "PT0003", Value = "3"
                },
                new SelectListItem {
                    Text = "PT0004", Value = "4"
                }
            };

            return(View(viewModel));
        }
Пример #2
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));
        }
Пример #3
0
        public async Task <IActionResult> Renew(string id)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var member = await _context.ApplicationUser.Include("PersonType").FirstOrDefaultAsync(a => a.Id == id);

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

            var personType = await _context.PersonTypes.FindAsync(member.PersonTypeId);

            var chapters = await _context.MemberChapters.Where(c => c.ApplicationUserId == id)
                           .Include("Chapter").ToListAsync();

            var viewModel = new RenewViewModel
            {
                MemberId       = member.Id,
                Name           = member.FirstName + " " + member.LastName,
                Pseudonym      = member.Pseudonym,
                CommonName     = member.CommonName,
                Email          = member.Email,
                PersonTypeName = member.PersonType.Name
            };

            var item = new RenewalItem
            {
                Name        = "League Membership",
                WhenExpires = member.WhenExpires,
                IsRenewal   =
                    (member.WhenExpires >= DateTime.Now.AddDays(-1 * member.PersonType.StartSendingRenewalDays) &&
                     member.WhenExpires <= DateTime.Now.AddDays(member.PersonType.StopSendingRenewalDays)) ? 1 : 0,
                Days = DateTime.Now <= member.WhenExpires
                    ? member.WhenExpires.Date.Subtract(DateTime.Now.Date).Days
                    : DateTime.Now.Date.Subtract(member.WhenExpires.Date).Days,
                DaysText = DateTime.Now <= member.WhenExpires
                    ? member.WhenExpires.Date.Subtract(DateTime.Now.Date).Days.ToString() + " days"
                    : DateTime.Now.Date.Subtract(member.WhenExpires.Date).Days.ToString() + " days ago",
                NewWhenExpires = member.WhenExpires.AddYears(1),
                ItemId         = 0
            };

            viewModel.RenewalItems.Add(item);

            foreach (var chapter in chapters)
            {
                item = new RenewalItem
                {
                    Name        = chapter.Chapter.Name,
                    IsPrimary   = chapter.IsPrimary,
                    WhenExpires = chapter.WhenExpires.Value,
                    IsRenewal   = chapter.WhenExpires >=
                                  DateTime.Now.AddDays(-1 * member.PersonType.StartSendingRenewalDays) &&
                                  chapter.WhenExpires <= DateTime.Now.AddDays(member.PersonType.StopSendingRenewalDays) ? 1 : 0,
                    //IsRenewal = (chapter.WhenExpires >=
                    //             DateTime.Now.AddDays(-1 * member.PersonType.StartSendingRenewalDays) &&
                    //             chapter.WhenExpires <= DateTime.Now.AddDays(member.PersonType.StopSendingRenewalDays)),
                    Days = DateTime.Now <= chapter.WhenExpires
                        ? chapter.WhenExpires.Value.Date.Subtract(DateTime.Now.Date).Days
                        : DateTime.Now.Date.Subtract(chapter.WhenExpires.Value.Date).Days * -1,
                    DaysText = DateTime.Now <= chapter.WhenExpires
                        ? chapter.WhenExpires.Value.Date.Subtract(DateTime.Now.Date).Days.ToString() + " days"
                        : DateTime.Now.Date.Subtract(chapter.WhenExpires.Value.Date).Days.ToString() + " days ago",
                    NewWhenExpires = chapter.WhenExpires.Value.AddYears(1),
                    ItemId         = chapter.Id
                };
                viewModel.RenewalItems.Add(item);
            }

            return(View(viewModel));
        }
Пример #4
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));
        }