예제 #1
0
        public ICommandResult Create(ContatoDto dto)
        {
            if (_contatoRepositorio.ExisteCpf(dto.Cpf))
            {
                return(new CommandResult(false, "O Cpf ja está cadastrado"));
            }

            if (_contatoRepositorio.ExisteEmail(dto.Email))
            {
                return(new CommandResult(false, "O Email ja está cadastradoo"));
            }

            var nome         = new Nome(dto.Nome, dto.SobreNome);
            var email1       = new EMAIL(dto.Email, ETipoEmail.Principal);
            var email2       = new EMAIL(dto.Email2, ETipoEmail.Secundario);
            var cpf          = new CPF(dto.Cpf);
            var redesSociais = new RedesSociais(dto.Twitter, dto.Skype, dto.Youtube, dto.FaceBook, dto.GooglePlus, dto.Linkedin, dto.Instagram);

            var contato = new Contato(nome, dto.Sexo, dto.Idade, dto.DataNascimento, dto.TelefoneComercial,
                                      dto.TelefoneCelular, dto.TelefoneResidencial, dto.TelefoneAdicional,
                                      email1, email2, dto.Rg, cpf, null, null, null, redesSociais);

            if (!contato.Validar())
            {
                return(new CommandResult(false, "erro", contato.Erros));
            }

            if (!cpf.Validar())
            {
                return(new CommandResult(false, "Erros na entidade", cpf.Erros));
            }

            var id = _contatoRepositorio.Create(contato);

            return(new CommandResult(true, "Contato criado com sucesso!", id));
        }