Пример #1
0
        public async Task <Movimentacao> Inserir(Movimentacao movimentacao)
        {
            try
            {
                await ValidarOperacaoExistente(movimentacao.IdOperacao);
                await ValidarUsuarioExistente(movimentacao.IdUsuario);

                return(await _movimentacaoRepository.Inserir(movimentacao));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public async Task <Pedido> FinalizarPedido(int idPedido, Movimentacao movimentacao)
        {
            try
            {
                await ValidarPedidoExistente(idPedido);

                movimentacao.Data = DateTime.Now;
                await _movimentacaoRepository.Inserir(movimentacao);

                return(await _pedidoRepository.AlterarStatusPedido(idPedido, PedidoStatus.Finalizado));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #3
0
        public Task <bool> Handle(RegistrarMovimentacaoCommand request, CancellationToken cancellationToken)
        {
            var conta        = _contaRepository.ObterPorId(request.ContaId);
            var cliente      = _clienteRepository.ObterPorId(conta.ClienteId);
            var movimentacao = MovimentacaoAdapter.ToMovimentacao(request);

            movimentacao.DefinirConta(conta.Id, conta.Numero, conta.DigitoVerificador, cliente.Id, cliente.NomeCompleto, cliente.Cpf);
            movimentacao.DefinirVinculo(request.VinculadoId, request.TipoVinculo);

            if (!movimentacao.EstaConsistente())
            {
                NotificarValidacoesErro(movimentacao.ValidationResult);
                return(Falha());
            }

            _movimentacaoRepository.Inserir(movimentacao);
            return(Sucesso());
        }