public async Task <IActionResult> Get(string identifier) { var response = await mediator.Send(new AccountByIdentifier(identifier)); if (response.Invalid) { return(ValidationError(response)); } return(Ok(PayloadResponse <GetAccountResponse> .Create(new GetAccountResponse(response.Result as AccountEntity)))); }
public async Task <IActionResult> PosTransaction([FromRoute] Guid account_id, [FromBody] PostTransactionRequest request) { var response = await mediator.Send(new PublishTransaction(account_id, request.Value, request.Type)); if (response.Invalid) { return(ValidationError(response)); } return(Created("", PayloadResponse.Create())); }
public async Task <IActionResult> Post(PostTransferFundsRequest request) { var response = await mediator.Send(new Transfer(request.From, request.To, request.Value)); if (response.Invalid) { return(ValidationError(response)); } return(Ok(PayloadResponse.Create(true))); }
public async Task <IActionResult> GetBalance([FromRoute] Guid account_id) { var response = await mediator.Send(new TransactionsByAccount(account_id)); if (response.Invalid) { return(ValidationError(response)); } var transactions = response.Result as List <TransactionEntity>; return(Ok(PayloadResponse <decimal> .Create(transactions.Sum(x => x.Value)))); }
public async Task <IActionResult> GetTransactions([FromRoute] Guid account_id) { var response = await mediator.Send(new TransactionsByAccount(account_id)); if (response.Invalid) { return(ValidationError(response)); } var transactions = response.Result as List <TransactionEntity>; var result = transactions.Select(tr => new GetTransactionsResponse(tr)).ToList(); return(Ok(PayloadResponse <List <GetTransactionsResponse> > .Create(result))); }
protected BadRequestObjectResult ValidationError(Response validation) { return(BadRequest(PayloadResponse <List <string> > .Create(validation.Notifications, false))); }