Example #1
0
        public async Task <PessoaJuridicaResponseDto> CreateAsync(PessoaJuridicaRequestDto model)
        {
            var pessoa = new PessoaJuridica(
                model.Nome,
                model.Telefone,
                model.Endereco,
                model.Email,
                model.Cnpj,
                model.RazaoSocial,
                model.DataAbertura
                );

            var validationResult = await pessoa.Validate();

            if (!validationResult.IsValid)
            {
                var msg = "Ocorreu os seguintes erros:\r\n";

                foreach (var erro in validationResult.Errors)
                {
                    msg = $"{msg}- {erro.ErrorMessage}\r\n";
                }

                throw new Exception(msg);
            }

            await _repo.CreateAsync(pessoa);

            return(new PessoaJuridicaResponseDto
            {
                Id = pessoa.Id,
                Cnpj = pessoa.Cnpj,
                DataAbertura = pessoa.DataAbertura,
                Email = pessoa.Email,
                Endereco = pessoa.Endereco,
                Nome = pessoa.Nome,
                RazaoSocial = pessoa.RazaoSocial,
                Telefone = pessoa.Telefone
            });
        }