public async Task <Result> AdicionarContaCorrente(ContaCorrentePostRequest request) { bool parametrosValidados = await ValidacaoParametrosEntradaAdicionar(request); if (!parametrosValidados) { return(Error(new MetaError(ListaErros.ParametrosNaoPodemSerVazio, StatusCode.Conflict))); } var documentoValido = await DocumentoValido(request.documento); if (documentoValido) { return(Error(new MetaError(ListaErros.DocumentoInvalido, StatusCode.Conflict))); } var documentoExistente = await BuscarContaCorrentePorDocumento(request.documento); if (documentoExistente != null) { return(Error(new MetaError(ListaErros.DocumentoJaCadastrado, StatusCode.Conflict))); } var conta = EncapsularRequestParaModel(request); await this.contaCorrenteRepository.AdicionarContaCorrente(conta); return(Success()); }
public ContaCorrente EncapsularRequestParaModel(ContaCorrentePostRequest request) { return(new ContaCorrente() { dataCadastro = DateTime.Now, nome = request.nome, documento = request.documento, tipoConta = (TipoConta)request.tipoConta, tipoPessoa = (TipoPessoa)request.tipoPessoa }); }
public async Task <bool> ValidacaoParametrosEntradaAdicionar(ContaCorrentePostRequest request) { var result = true; if (string.IsNullOrEmpty(request.nome) || string.IsNullOrEmpty(request.documento) || !Enum.IsDefined(typeof(TipoPessoa), request.tipoConta) || !Enum.IsDefined(typeof(TipoConta), request.tipoConta)) { result = false; } return(result); }
public async Task <IActionResult> AddContaCorrente([FromBody] ContaCorrentePostRequest request) { var cliente = await this.contaCorrenteService.AdicionarContaCorrente(request); return(HttpHelper.Convert(cliente)); }