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))); }
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)); }
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) )); }
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)); }
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!" })); }
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); }
// 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)); }