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; } }
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; } }
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()); }