public async Task <IWriterResult> AdminUpdatePayment(string userId, UpdateTermDepositPaymentModel model) { var currentUser = new Guid(userId); using (var context = ExchangeDataContextFactory.CreateContext()) { var user = await context.Users.FirstOrDefaultAsync(x => x.Id == currentUser).ConfigureAwait(false); if (user == null) { return(new WriterResult <int>(false, "Unauthorized")); } var termDepositPayment = await context.TermDepositPayment .Include(x => x.TermDeposit) .FirstOrDefaultAsync(x => x.Id == model.PaymentId).ConfigureAwait(false); if (termDepositPayment == null) { return(new WriterResult <int>(false, $"Term deposit payment #{model.PaymentId} not found.")); } termDepositPayment.TransactionId = model.TransactionId; if (termDepositPayment.Type == TermDepositPaymentType.Cancel && termDepositPayment.TermDeposit.Status == TermDepositStatus.PendingCancel) { termDepositPayment.TermDeposit.Status = TermDepositStatus.Canceled; } await context.SaveChangesAsync().ConfigureAwait(false); return(new WriterResult(true, $"Successfully updated term deposit #{termDepositPayment.TermDepositId}")); } }
public async Task <ActionResult> UpdatePayment(UpdateTermDepositPaymentModel model) { if (!ModelState.IsValid) { return(View("UpdatePayment", model)); } var result = await TermDepositWriter.AdminUpdatePayment(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("UpdatePayment", model)); } return(CloseModalSuccess(result.Message)); }