Beispiel #1
0
        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);
        }
Beispiel #6
0
        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));
        }