public UserPaymentsViewModel GetUserPayments(int UserID) { var payments = _userService.GetUserPaymentDetails(UserID); //sort by newest date var sortedPayments = payments.OrderByDescending(x => x.Account.Payment.PaymentDate).Select(d => d.Account.Payment); var upvm = new UserPaymentsViewModel(); List <ProcessPaymentViewModel> lstPayments = new List <ProcessPaymentViewModel>(); upvm.AccountBalance = payments.Select(x => x.Account.Balance).FirstOrDefault(); foreach (var p in sortedPayments) { ProcessPaymentViewModel pvm = new ProcessPaymentViewModel(); pvm.PaymentDate = p.PaymentDate.Date; pvm.Amount = p.Amount; pvm.PaymentStatus = p.PaymentStatus; if (p.PaymentStatus == "Closed") { pvm.Reason = p.Reason; } lstPayments.Add(pvm); } upvm.Payments = lstPayments; return(upvm); }
public ActionResult Subscription() { int userId = Int32.Parse(Session["UserId"].ToString()); SussexDBEntities db = new SussexDBEntities(); UserPaymentsViewModel viewModel = new UserPaymentsViewModel(); viewModel.BillingHistories = db.BillingHistories.Where(w => w.UserId == userId).ToList(); return(View(viewModel)); }
public ActionResult UserPayments() { SussexDBEntities db = new SussexDBEntities(); foreach (var user in db.Users.ToList()) { PaymentHelper.StartMonthlySubscription(user.UserId); PaymentHelper.UpdateMonthlySubscription(user.UserId); } UserPaymentsViewModel viewModel = new UserPaymentsViewModel(); viewModel.BillingHistories = db.BillingHistories.Where(w => !w.BillingHistoryIsPayed).ToList(); return(View(viewModel)); }
public IActionResult Main(int?payment, string goal, int?account, string date, int page = 1, PaymentsSortState sortOrder = PaymentsSortState.PaymentIdAsc) { int pageSize = 5; IQueryable <Payment> source = _context.Payments.Include(x => x.Goal).Include(x => x.Account.Card.User).Where(pay => pay.Account.Card.User.Email == User.Identity.Name); if (payment != null && payment != 0) { source = source.Where(x => x.PaymentId == payment); } if (account != null && account != 0) { source = source.Where(x => x.AccountId == account); } if (goal != null) { source = source.Where(x => x.Goal.GoalName.Contains(goal)); } if (date != null) { source = source.Where(x => x.Date.Contains(date)); } switch (sortOrder) { case PaymentsSortState.PaymentIdAsc: source = source.OrderBy(x => x.PaymentId); break; case PaymentsSortState.PaymentIdDesc: source = source.OrderByDescending(x => x.PaymentId); break; case PaymentsSortState.AccIdAsc: source = source.OrderBy(x => x.AccountId); break; case PaymentsSortState.AccIdDesc: source = source.OrderByDescending(x => x.AccountId); break; case PaymentsSortState.GoalAsc: source = source.OrderBy(x => x.Goal.GoalName); break; case PaymentsSortState.GoalDesc: source = source.OrderByDescending(x => x.Goal.GoalName); break; case PaymentsSortState.AmountAsc: source = source.OrderBy(x => x.Amount); break; case PaymentsSortState.AmountDesc: source = source.OrderByDescending(x => x.Amount); break; case PaymentsSortState.DateAsc: source = source.OrderBy(x => DateTime.Parse(x.Date).Date); break; case PaymentsSortState.DateDesc: source = source.OrderByDescending(x => DateTime.Parse(x.Date).Date); break; default: source = source.OrderBy(x => x.PaymentId); break; } var count = source.Count(); var items = source.Skip((page - 1) * pageSize).Take(pageSize); PageViewModel pageView = new PageViewModel(count, page, pageSize); UserPaymentsViewModel ivm = new UserPaymentsViewModel { PageViewModel = pageView, SortViewModel = new SortPaymentsViewModel(sortOrder), FilterViewModel = new FilterPaymentsViewModel(goal, date, account, payment), Payments = items }; ViewBag.User = _context.Users.FirstOrDefault(x => x.Email == User.Identity.Name).Name; return(View("Main", ivm)); }