예제 #1
0
        public ICommandResult Handle(InserirPessoaExternaCommand command)
        {
            //Fail Fast Validations
            command.Validate();
            if (command.Invalid)
            {
                AddNotifications(command);
                return(new GenericCommandResult(false, "Não foi possivel realizar o cadastro", MensagemTipo.ADVERTENCIA, command.Notifications));
            }

            #region Validações

            //Verificar se email esta cadastrado
            NcPessoaExterna pessoa = _repository.ObterPorEmail(command.Email);
            if (pessoa != null && pessoa.Id > 0)
            {
                //AddNotification("Email", "Este Email já está em uso");
                return(new GenericCommandResult(false, "Este e-mail já está em uso", MensagemTipo.ADVERTENCIA, null));
            }

            //Verificar se documento esta cadastrado
            pessoa = _repository.ObterPorDocumentoTipo(command.DocumentoNumero, command.PessoaDocTipo);

            if (pessoa != null && pessoa.Id > 0)
            {
                //AddNotification("Documento", "Este documento já está em uso");
                return(new GenericCommandResult(false, "Este documento já está em uso", MensagemTipo.ADVERTENCIA, null));
            }


            #endregion

            //Checar as notificações
            if (Invalid)
            {
                return(new GenericCommandResult(false, "Não foi possível realizar o cadastro", MensagemTipo.ADVERTENCIA, command.Notifications));
            }

            //Gerar os VOs
            //var nome = new Nomes(command.Nome);
            //var email = new Email(command.Email);
            //var documento = new NcDocumentoGrupo();
            //var grupo = new NcPessoaGrupo();
            //var visitado = new NcPessoaInterna();

            // Gera a PessoaExterna
            var pessoaExterna = new NcPessoaExterna(
                command.Nome,
                command.Grupo,
                command.TelefoneFixo
                );

            // Salva no banco
            _repository.Inserir(pessoaExterna);


            // Retorna o resultado
            return(new GenericCommandResult(true, "Cadastro realizado com sucesso", MensagemTipo.ADVERTENCIA, null));
        }
 //*******************************************************************************
 //Excluir
 public bool Excluir(NcPessoaExterna item)
 {
     try
     {
         _context.NcPessoaExterna.Remove(item);
         _context.SaveChangesAsync();      //Nessa linha ele vai no context e posteriormente deleta o regitro no banco
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        //*******************************************************************************
        //Alterar
        public NcPessoaExterna Alterar(NcPessoaExterna item)
        {
            try
            {
                _context.Entry(item).State = EntityState.Modified;   // O EF verifica qual campo foi alterado e faz o update somente nesse campo
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(item);
        }
        //*******************************************************************************
        //Inserir
        public NcPessoaExterna Inserir(NcPessoaExterna item)
        {
            try
            {
                _context.NcPessoaExterna.Add(item);
                _context.SaveChanges();         // é aqui que vai ao banco e faz a persistencia
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(item);
        }
예제 #5
0
        public ICommandResult Handle(AlterarPessoaExternaCommand command)
        {
            //Fail Fast Validations
            command.Validate();
            if (command.Invalid)
            {
                AddNotifications(command);
                return(new GenericCommandResult(false, "Não foi possivel alterar o cadastro", MensagemTipo.ADVERTENCIA, command.Notifications));
            }

            //Verificar se documento esta cadastrado
            NcPessoaExterna pessoa = _repository.ObterPorDocumentoTipo(command.DocumentoNumero, command.PessoaDocTipo);

            if (pessoa != null && pessoa.Id > 0 && command.Id != pessoa.Id)
            {
                //AddNotification("Documento", "Este documento já está em uso");
                return(new GenericCommandResult(false, "Este documento já está em uso", MensagemTipo.ADVERTENCIA, null));
            }

            //Checar as notificações
            if (Invalid)
            {
                return(new GenericCommandResult(false, "Não foi possível alterar o cadastro", MensagemTipo.ADVERTENCIA, null));
            }

            //Obtem o cadastro pelo id
            pessoa = _repository.ObterPorId(command.Id);

            if (pessoa == null)
            {
                return(new GenericCommandResult(false, "Não foi possível alterar o cadastro. Cadastro não localizado", MensagemTipo.ADVERTENCIA, null));
            }
            else
            {
                pessoa.Alterar(
                    command.Nome,
                    command.Grupo,
                    command.TelefoneFixo
                    );
            }

            // Salva no banco
            _repository.Alterar(pessoa);

            // Retorna o resultado
            return(new GenericCommandResult(true, "Cadastro alterado com sucesso", MensagemTipo.ADVERTENCIA, pessoa));
        }
 public NcPessoaExterna Inserir(NcPessoaExterna item)
 {
     throw new NotImplementedException();
 }
 public bool Excluir(NcPessoaExterna item)
 {
     throw new NotImplementedException();
 }