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}"));
            }
        }
Exemplo n.º 2
0
        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));
        }