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)); }
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)); }