public IActionResult Payout(int orderId)
        {
            var viewModel = new PayoutViewModel()
            {
                OrderId = orderId,
                Order   = orders.FirstOrDefault(x => x.Id == orderId)
            };

            return(View(viewModel));
        }
        public IActionResult Payout(PayoutViewModel viewModel)
        {
            var order = orders.FirstOrDefault(x => x.Id == viewModel.OrderId);

            if (viewModel.Tip)
            {
                order.Tip = true;
            }
            else
            {
                order.Tip = false;
            }
            order.IsPaid = true;
            SessionService.SetJson(HttpContext.Session, SessionKeys.OrdersKey, orders);
            TempData["SuccessMessage"] = "Pomyślnie opłacono zamówienie";
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(int id)
        {
            PayoutViewModel payout = null;
            using (var unitOfWork = new UnitOfWork(new BankModuleFactory()))
            {
                var LoanAgreementService = new LoanAgreementService(unitOfWork);

                var agreement = LoanAgreementService.Get(a => a.Id == id, null,
                    ag => ag.LoanAccount, ag => ag.PayoutStatus, ag => ag.LoanApplication,
                    ag => ag.LoanApplication.Client, ag => ag.Payouts, ag => ag.Fines).FirstOrDefault();

                payout = new PayoutViewModel
                {
                    LoanAgreementId = agreement.Id,
                    LoanAgreement = agreement,
                    Currency = agreement.Currency,
                    TotalAmount = agreement.PayoutStatus.MonthlyPayout,
                    PrepaymentAmount = LoanAgreementService.CountPrepaymentAmount(agreement),
                };
            }
            return View(payout);
        }
 public ActionResult Create(PayoutViewModel payoutViewModel)
 {
     try
     {
         if (ModelState.IsValid)
         {
             var result = _controleHelper.CreateEntity<Payout, PayoutViewModel>(payoutViewModel);
             if (result.Error.Any())
             {
                 ModelState.AddModelError(string.Empty, result.Error.First().ErrorMessage);
                 return View(payoutViewModel);
             }
             return RedirectToAction("Details", new { id = result.Entity.LoanAgreementId });
         }
     }
     catch (Exception ex)
     {
         ModelState.AddModelError(string.Empty, ex);
     }
     payoutViewModel.LoanAgreement = _controleHelper.FirstOrDefault<LoanAgreement>(a => a.Id == payoutViewModel.LoanAgreementId, ag => ag.LoanAccount,
         ag => ag.Client, ag => ag.PayoutStatus);
     return View(payoutViewModel);
 }