예제 #1
0
        public async Task <ResponsePessoaFisicaAddModel> Add(PessoaFisicaAddModel model)
        {
            // TODO: Validation: (CPF e Id não podem ser repetidos)

            try
            {
                _pessoaService.ConfigurePessoaToAdd(model.Pessoa);

                foreach (var documento in model.Pessoa.Documentos)
                {
                    _documentoService.ConfigureDocumentoToAdd(documento);
                }

                var pessoaFisicaEntity = _mapper.Map <PessoaFisicaEntity>(model);

                var pessoaFisicaEntityDb = await _pessoaFisicaRepository.Insert(pessoaFisicaEntity);

                _uow.SaveChanges();

                return(new ResponsePessoaFisicaAddModel {
                    PessoaFisica = _mapper.Map <PessoaFisicaModel>((PessoaFisicaEntity)pessoaFisicaEntityDb.Entity), Message = "Pessoa Física Registrada com Sucesso", Success = true
                });
            }
            catch (Exception ex)
            {
                return(new ResponsePessoaFisicaAddModel {
                    PessoaFisica = null, Message = ex.Message, Success = false
                });
            }
        }