コード例 #1
0
        public async Task <ActionResult> SaveTransaction([FromHeader, Bind(Prefix = "payload")] string token,
                                                         AddBudgetTransactionViewModel model)
        {
            var transactionClaim = GetClaim <TransactionClaim>(token);

            if (model.BudgetId != transactionClaim.BudgetPlannerId)
            {
                throw new UnauthorizedAccessException();
            }

            var request = Map <AddBudgetTransactionViewModel, CreateTransactionRequest>(model);

            request.AccountId = transactionClaim.AccountId;

            var response = await MediatorService.Send(request);

            return(ResponseResult(response));
        }
コード例 #2
0
        public async Task <ActionResult> SaveTransaction(AddBudgetTransactionViewModel model)
        {
            model.TransactionTypes = await GetTransactionTypes();

            if (!ModelState.IsValid)
            {
                return(View("CreateTransaction", model));
            }

            var createTransactionRequest = Map <AddBudgetTransactionViewModel, CreateTransactionRequest>(model);

            createTransactionRequest.AccountId = (await CurrentAccount).Id;
            var response = await MediatorService.Send(createTransactionRequest);

            if (response.IsSuccessful)
            {
                return(RedirectToAction("Details", "Budget", new { reference = response.Reference }));
            }

            return(await ViewWithContent(ContentConstants.TransactionEditorPath, model));
        }