コード例 #1
0
        public ActionResult AddPayment(PaymentEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(AddPayment(viewModel.SubscriptionId));
            }

            Payment payment = Mapper.Map <Payment>(viewModel);

            _subscriptionsService.AddPayment(payment);

            return(RedirectToAction(nameof(Index)));
        }
コード例 #2
0
ファイル: PaymentPartDriver.cs プロジェクト: YSRE/SuperRocket
 protected override DriverResult Editor(PaymentPart part, IUpdateModel updater, dynamic shapeHelper)
 {
     if (Services.Authorizer.Authorize(Permissions.PaymentPermissions.ManagePayments))
     {
         var model = new PaymentEditViewModel();
         if (updater.TryUpdateModel(model, Prefix, null, null))
         {
             // New transaction
             if (model.NewTransaction != null && model.NewTransaction.Date != null)
             {
                 var date = _dateServices.ConvertFromLocalizedString(model.NewTransaction.Date.Date, model.NewTransaction.Date.Time);
                 if (date.HasValue &&
                     !String.IsNullOrWhiteSpace(model.NewTransaction.Method) &&
                     model.NewTransaction.Amount != 0)
                 {
                     _paymentService.AddTransaction(part, new PaymentTransactionRecord()
                     {
                         Date          = date.Value,
                         Amount        = model.NewTransaction.Amount,
                         Method        = model.NewTransaction.Method,
                         TransactionId = model.NewTransaction.TransactionId,
                         Status        = model.NewTransaction.Status
                     });
                 }
             }
             if (model.Transactions != null)
             {
                 // Updated transactions
                 foreach (var transactionVM in model.Transactions.Where(t => t.IsUpdated))
                 {
                     var date = _dateServices.ConvertFromLocalizedString(model.NewTransaction.Date.Date, model.NewTransaction.Date.Time);
                     var transactionRecord = _paymentService.GetTransaction(transactionVM.Id);
                     if (transactionRecord != null)
                     {
                         if (date.HasValue)
                         {
                             transactionRecord.Date = date.Value;
                         }
                         transactionRecord.Method        = transactionVM.Method;
                         transactionRecord.Amount        = transactionVM.Amount;
                         transactionRecord.TransactionId = transactionVM.TransactionId;
                         transactionRecord.Status        = transactionVM.Status;
                     }
                 }
             }
         }
     }
     return(Editor(part, shapeHelper));
 }
コード例 #3
0
ファイル: PaymentPartDriver.cs プロジェクト: YSRE/SuperRocket
        protected override DriverResult Editor(PaymentPart part, dynamic shapeHelper)
        {
            var model = new PaymentEditViewModel()
            {
                AmountPaid    = part.AmountPaid,
                PayableAmount = part.PayableAmount,
                Transactions  = part.Transactions.Select(t => new PaymentTransactionEditViewModel()
                {
                    Id   = t.Id,
                    Date = new DateTimeEditor()
                    {
                        ShowDate = true,
                        ShowTime = true,
                        Date     = _dateServices.ConvertToLocalizedDateString(t.Date),
                        Time     = _dateServices.ConvertToLocalizedTimeString(t.Date),
                    },
                    Method        = t.Method,
                    TransactionId = t.TransactionId,
                    Status        = t.Status,
                    Amount        = t.Amount
                }).ToArray(),
                NewTransaction = new PaymentTransactionEditViewModel()
                {
                    Date = new DateTimeEditor()
                    {
                        ShowDate = true,
                        ShowTime = true,
                        Date     = _dateServices.ConvertToLocalizedDateString(_clock.UtcNow),
                        Time     = _dateServices.ConvertToLocalizedTimeString(_clock.UtcNow),
                    },
                    Status = TransactionStatus.Validated,
                    Amount = part.PayableAmount - part.AmountPaid
                }
            };

            return(ContentShape("Parts_Payment_Edit",
                                () => shapeHelper.EditorTemplate(
                                    TemplateName: TemplateName,
                                    Model: model,
                                    Prefix: Prefix)
                                ));
        }
コード例 #4
0
        public async Task <IActionResult> Edit(int id, PaymentEditViewModel vm)
        {
            if (id != vm.Payment.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                _bll.Payments.Update(vm.Payment);
                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.InvoiceSelectList = new SelectList(await _bll.Invoices.AllAsync(),
                                                  nameof(BLL.App.DTO.Invoice.Id),
                                                  nameof(BLL.App.DTO.Invoice.Id),
                                                  vm.Payment.InvoiceId);

            return(View(vm));
        }
コード例 #5
0
 public async Task <IActionResult> EditPayment([FromBody] PaymentEditViewModel payment)
 {
     try {
         var p = Mapper.Map <Payment>(payment);
         if (!await _repository.EditPayment(p, _userManager.GetUserId(this.User)))
         {
             return(StatusCode(403, new ErrorResponseViewModel {
                 Message = "Do not have premission for this action!"
             }));
         }
         if (await _repository.SaveChangesAsync())
         {
             return(Ok());
         }
     }
     catch (Exception ex)
     {
         _logger.LogError($"Failed to delete payment: {ex}");
     }
     return(BadRequest(new ErrorResponseViewModel {
         Message = "Error while deleting payment!"
     }));
 }
コード例 #6
0
        public PaymentEditViewModelTests()
        {
            _paymentDeletedEventMock = new Mock <PaymentDeletedEvent>();
            _paymentSavedEventMock   = new Mock <PaymentSavedEvent>();

            _eventAggregatorMock = new Mock <IEventAggregator>();
            _eventAggregatorMock.Setup(ea => ea.GetEvent <PaymentSavedEvent>())
            .Returns(_paymentSavedEventMock.Object);
            _eventAggregatorMock.Setup(ea => ea.GetEvent <PaymentDeletedEvent>())
            .Returns(_paymentDeletedEventMock.Object);

            _dataProviderMock = new Mock <IPaymentTxDataProvider>();
            _dataProviderMock.Setup(dp => dp.GetPaymentTxById(_paymentId))
            .Returns(new Payment {
                Id = _paymentId, SourceAccountNumber = "Hammy"
            });

            _messageDialogServiceMock = new Mock <IMessageDialogService>();

            _viewModel = new PaymentEditViewModel(_dataProviderMock.Object,
                                                  _eventAggregatorMock.Object,
                                                  _messageDialogServiceMock.Object);
        }
コード例 #7
0
        // GET: Payments/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var payment = await _bll.Payments.FindAsync(id);

            if (payment == null)
            {
                return(NotFound());
            }
            var vm = new PaymentEditViewModel()
            {
                InvoiceSelectList = new SelectList(await _bll.Invoices.AllAsync(),
                                                   nameof(BLL.App.DTO.Invoice.Id),
                                                   nameof(BLL.App.DTO.Invoice.Id),
                                                   payment.InvoiceId),
            };

            return(View(vm));
        }