public Account VerificarSaldo(VerificarSaldoCommand command)
        {
            if (command.Account.Id == null)
            {
                throw new AccountException("Conta inválida");
            }

            return(_accountRepository.BuscarConta(command.Account));
        }
예제 #2
0
        public Notification VerificarSaldo(VerificarSaldoCommand command)
        {
            var conta = _accountRepository.BuscarConta(command.Account);

            if (command.Account.Id == null || conta.Id == null)
            {
                return(Notification.CreateError(message: "Conta inválida"));
            }

            return(Notification.CreateSuccess(null, null, 200,
                                              $"Conta -> { command.Account.Id} |" +
                                              $"Saldo atual -> {conta.Saldo}"));
        }
        public IActionResult VerificarSaldo(string contaId)
        {
            var conta   = Guid.Parse(contaId);
            var command = new VerificarSaldoCommand(conta);
            var verificarSaldoValidator = new VerificarSaldoValidator();
            var validation = verificarSaldoValidator.Validate(command);

            var notification = _accountService.VerificarSaldo(command);

            if (validation.IsValid && notification.Success)
            {
                return(Ok(notification));
            }

            return(BadRequest(notification));
        }
예제 #4
0
        public void Obter_Saldo()
        {
            //Given
            var id      = Guid.NewGuid();
            var command = new VerificarSaldoCommand(id);

            var conta = new Account
            {
                Id    = id,
                Saldo = 150
            };

            command.Account = conta;

            //When
            _mockAccountRepository.Setup(c => c.BuscarConta(conta)).Returns(conta);

            //Then
            var notification = _accountService.VerificarSaldo(command);

            Assert.True(notification.Success);
        }
예제 #5
0
        public AccountQuery(IAccountGraphQLService service)
        {
            //verificar saldo
            Field <AccountType>(
                name: "saldo",
                arguments: new QueryArguments(new QueryArgument[]
            {
                new QueryArgument <IdGraphType> {
                    Name = "id"
                },
            }),
                resolve: contexto =>
            {
                var idString = contexto.GetArgument <string>("id");
                var id       = Guid.Parse(idString);
                var command  = new VerificarSaldoCommand(id);

                return(service.VerificarSaldo(command));
            });

            //criarconta
            Field <AccountType>(
                name: "criarConta",
                resolve: context =>
            {
                return(service.CriarConta());
            });

            //sacar
            Field <AccountType>(
                name: "sacar",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "contaId"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "valor"
            }
                    ),
                resolve: context =>
            {
                var idString = context.GetArgument <string>("contaId");
                var valor    = context.GetArgument <double>("valor");
                var id       = Guid.Parse(idString);
                var command  = new AccountCommand(id, valor);

                var conta = service.Sacar(command);

                if (conta == null)
                {
                    context.Errors.Add(new ExecutionError("Não foi possivel encontrar conta na base de dados."));
                    return(null);
                }
                return(conta);
            });

            //depositar
            Field <AccountType>(
                name: "depositar",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "contaId"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "valor"
            }
                    ),
                resolve: context =>
            {
                var idString = context.GetArgument <string>("contaId");
                var valor    = context.GetArgument <double>("valor");
                var id       = Guid.Parse(idString);

                var command = new AccountCommand(id, valor);

                var conta = service.Depositar(command);

                if (conta == null)
                {
                    context.Errors.Add(new ExecutionError("Não foi possivel encontrar conta na base de dados."));
                    return(null);
                }
                return(conta);
            });
        }