public UsuarioAdicionarResponse Adicionar(OperacaoRequest request) { // Criei o UnitOfWork para mostrar um controle de transação com o dapper quando for preciso using (_unitOfWork) { // Inicia a transação _unitOfWork.BeginTransaction(); // Faz o mapeamento para a model e chama a service Lancamento lancamento = new Lancamento() { ContaDestino = request.ContaDestino, ContaOrigem = request.ContaOrigem, Valor = request.Valor }; ContaCorrente responseModel = _UsuarioService.Adicionar(lancamento); // Commit ou RollBack if (responseModel.Erros != null && responseModel.Erros.Any()) { _unitOfWork.RollBack(); } else { _unitOfWork.CommitTransaction(); } // Mapemento do response e retorna para a api UsuarioAdicionarResponse response = _mapper.Map <UsuarioAdicionarResponse>(responseModel); return(response); } }
public async Task <ActionResult> OperacaoAsync([FromBody] OperacaoRequest operacaoRequest) { var result = await _operacaoService.OperacaoAsync(operacaoRequest); if (result.HasFails) { return(BadRequest(result.Fails)); } return(this.Ok(result.Data)); }
public void Deve_Adicionar_Quando_Todos_Os_Campos_Estao_Preenchidos() { _UsuarioAppService = _services.GetService <IOperacaoAppService>(); OperacaoRequest request = new OperacaoRequest { }; _UsuarioRepositoryMock.Setup(r => r.Adicionar(It.IsAny <Lancamento>())).Returns(_faker.Random.Number(1, 100)); UsuarioAdicionarResponse response = _UsuarioAppService.Adicionar(request); Assert.True(response.Id > 0); Assert.True(!response.Erros.Any()); }
public void DeveEfetuarUmLancamento() { _UsuarioAppService = _services.GetService <IOperacaoAppService>(); OperacaoRequest request = new OperacaoRequest { ContaOrigem = _faker.Finance.Account(), ContaDestino = _faker.Finance.Account(), Valor = _faker.Finance.Amount() }; UsuarioAdicionarResponse response = _UsuarioAppService.Adicionar(request); Assert.Contains(response.Erros, x => x.Descricao == "Conta é obrigatório" && x.Codigo == 400); }
public async Task <ResponseResult> OperacaoAsync(OperacaoRequest operacao) { try { operacao.Validate(); if (operacao.Notifications.Any()) { _response.AddNotifications(operacao.Notifications); return(_response); } var entidade = new Operacao(operacao.IdTransaction, operacao.Valor, operacao.Operacao, operacao.DataHora); entidade.ObterTransacao(); if (entidade.Notifications.Any()) { _response.AddNotifications(entidade.Notifications); return(_response); } var transaction = await TransacaoAsync(entidade); _response.AddValue(new Data { Transacao = operacao.Operacao.ToString(), IdTransacao = operacao.IdTransaction, Mensagem = $"Operação efutuada com sucesso em :{ operacao.DataHora.ToString()}", Valor = transaction }); } catch (Exception exception) { _response.AddNotification(new Notification(nameof(OperacaoService), $"Falha na operação ocorreu uma exceção em :{ exception}")); } return(_response); }
public async Task <bool> Trasaction(OperacaoRequest contacorrenteRequest) { var response = await _client.PostAsJsonAsync("/api/v1/ContaCorrente/Operacao", contacorrenteRequest); return(response.EnsureSuccessStatusCode().IsSuccessStatusCode); }
public IActionResult Adicionar(OperacaoRequest request) { UsuarioAdicionarResponse response = _UsuarioAppService.Adicionar(request); return(Ok(response)); }