Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }