Exemplo n.º 1
0
        //Construtor
        public EmpresaValidator()
        {
            RuleFor(x => x.Empresa.Pessoa.nome).NotEmpty().WithMessage("Informe o nome fantasia da empresa.");

            RuleFor(x => x.Empresa.Pessoa.nroDocumento).NotEmpty().WithMessage("Informe o CNPJ da Empresa");

            When(x => !String.IsNullOrEmpty(x.Empresa.Pessoa.nroDocumento), () => {
                RuleFor(x => UtilString.onlyAlphaNumber(x.Empresa.Pessoa.nroDocumento)).Length(14).WithMessage("Um CNPJ deve possuir 14 caracteres.");
                RuleFor(x => x.Empresa.Pessoa.nroDocumento).Must((cnpj) => UtilValidation.isCPFCNPJ(cnpj)).WithMessage("Informe um CNPJ válido para a empresa.");
                RuleFor(x => x.Empresa.Pessoa.nroDocumento).Must((x, nroDocumento) => !this.existeCNPJ(x)).WithMessage("Já existe uma empresa cadastrada com esse CNPJ.");
            });

            When(x => !String.IsNullOrEmpty(x.Empresa.Pessoa.emailPrincipal), () => {
                RuleFor(x => x.Empresa.Pessoa.emailPrincipal)
                .EmailAddress().WithMessage("O e-mail informado não é válido.");

                RuleFor(x => x.Empresa.Pessoa.emailPrincipal)
                .Must((x, email) => !this.existeEmailPrincipal(x)).WithMessage("Esse e-mail já está sendo usado por outra empresa.");
            });

            When(x => !String.IsNullOrEmpty(x.Empresa.Pessoa.emailSecundario), () => {
                RuleFor(x => x.Empresa.Pessoa.emailSecundario)
                .EmailAddress().WithMessage("O e-mail informado não é válido.");

                RuleFor(x => x.Empresa.Pessoa.emailSecundario)
                .Must((x, email) => !this.existeEmailSecundario(x)).WithMessage("Esse e-mail já está sendo usado por outra empresa.");
            });
        }
        //Verificar limite de emails informados
        public bool verificarLimiteEmails(AssociadoEnvioCadastroEmailForm ViewModel)
        {
            var emails        = UtilString.notNull(ViewModel.emailsDestino).Split(';').Where(x => !String.IsNullOrEmpty(x)).ToList();
            var emailsValidos = emails.Where(x => UtilValidation.isEmail(x)).ToList();

            return(emailsValidos.Count <= 5);
        }
        //Construtor
        public UsuarioSistemaValidator()
        {
            RuleFor(x => x.UsuarioSistema.Pessoa.nome)
            .NotEmpty().WithMessage("Informe o nome do usuário");

            RuleFor(x => x.UsuarioSistema.idPerfilAcesso)
            .NotEmpty().WithMessage("Informe o perfil de acesso do usuário.");

            RuleFor(x => x.UsuarioSistema.idOrganizacao)
            .NotEmpty().WithMessage("Informe a Associação do usuário.");

            RuleFor(x => x.UsuarioSistema.Pessoa.emailPrincipal)
            .NotEmpty().WithMessage("Informe o e-mail do usuário")
            .EmailAddress().WithMessage("O e-mail informado é inválido");

            RuleFor(x => x.UsuarioSistema.login)
            .NotEmpty().WithMessage("Informe o login do usuário")
            .Must((x, login) => !exists(x, login)).WithMessage("O login informado já existe para outro usuário.");

            When(x => !String.IsNullOrEmpty(x.UsuarioSistema.Pessoa.nroDocumento), () => {
                RuleFor(x => x.UsuarioSistema.Pessoa.nroDocumento)
                .Must((model, value) => UtilValidation.isCPFCNPJ(value))
                .WithMessage("O número do CPF está inválido");
            });

            When(x => x.UsuarioSistema.dtInicioDegustacao != null, () => {
                RuleFor(x => x.UsuarioSistema.dtFimDegustacao)
                .NotEmpty().WithMessage("Informe a data final da degustação");
            });

            When(x => x.UsuarioSistema.dtFimDegustacao != null, () => {
                RuleFor(x => x.UsuarioSistema.dtInicioDegustacao)
                .NotEmpty().WithMessage("Informe a data início da degustação");
            });
        }
        public void adicionarAssociadosEmLote(string cnpfAssociadosLote)
        {
            string[] arrayCnpfAssociadosLote = cnpfAssociadosLote.Replace("\r\n", ";").Split(';')
                                               .Where(x => !String.IsNullOrEmpty(x))
                                               .Select(x => x.Trim()).ToArray();

            foreach (string cnpf in arrayCnpfAssociadosLote)
            {
                // Validação de documento
                if (!UtilValidation.isCPFCNPJ(cnpf))
                {
                    this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "O documento " + cnpf + " é inválido.");
                    continue;
                }

                var cnpfOnlyNumber = UtilString.onlyNumber(cnpf);

                // Verificação de existencia de associado por documento
                var idAssociado = this.OAssociadoBL.listar(0, "", "", "").Where(x => x.Pessoa.nroDocumento.Equals(cnpfOnlyNumber)).Select(x => x.id).FirstOrDefault();
                if (idAssociado == 0)
                {
                    this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Nenhum associado com documento " + cnpfOnlyNumber + " foi encontrado.");
                    continue;
                }

                this.adicionarAssociadoIndividual(idAssociado);
            }
        }
Exemplo n.º 5
0
        public void Update(SystemUserViewModel systemUserViewModel)
        {
            if (_systemUserRepository.GetExactEmail(systemUserViewModel.Email) != null)
            {
                throw new BusisnessException("Já existe um usuário cadastrado com este e-mail");
            }

            var passwordPower = UtilValidation.GetPasswordPower(systemUserViewModel.Password);

            if ((int)passwordPower < 3)
            {
                throw new BusisnessException($"A senha digitada não atende os requisitos mínimos - Nível {passwordPower}");
            }

            if (systemUserViewModel.Password != systemUserViewModel.ConfirmPassword)
            {
                throw new BusisnessException($"A senha digitada não é igual a confirmação de senha");
            }

            var model = _mapper.Map <SystemUserViewModel, SystemUser>(systemUserViewModel);

            model.Password = EncryptData.EncryptPassword(model.Password);

            _systemUserRepository.Add(model);
        }
        //Construtor
        public NaoAssociadoCadastroPFFormValidator()
        {
            When(x => !x.Associado.Pessoa.nroDocumento.isEmpty(), () => {
                RuleFor(x => x.Associado.Pessoa.nroDocumento)
                .Must((x, nroDocumento) => UtilValidation.isCPF(nroDocumento)).WithMessage("Informe um CPF válido.");


                if (OConfigPF.flagPermitirCPFDuplicado != true)
                {
                    RuleFor(x => x.Associado.Pessoa.nroDocumento)
                    .Must((x, nroDocumento) => !this.existeCPF(x)).WithMessage("O CPF informado já está sendo usado por outro associado.");
                }
            });


            When(x => x.Associado.id == 0, () => {
                RuleFor(x => x.Associado.codigoIndicador)
                .Must((x, codigoIndicador) => this.existeIndicador(x)).WithMessage("O código do indicador informado não é de um membro ativo no sistema.");
            });

            When(x => !x.Associado.rotaConta.isEmpty(), () => {
                RuleFor(x => x.Associado.rotaConta)
                .Must((x, rotaConta) => !this.existeRota(x)).WithMessage("O link informado já está sendo usado por outro membro.");
            });
        }
        //Construtor
        public AssociadoRepresentanteFormValidator()
        {
            RuleFor(x => x.AssociadoRepresentante.idAssociado)
            .NotEmpty().WithMessage("Informe a qual associado será vinculado o Representante.");

            RuleFor(x => x.AssociadoRepresentante.idTipoAssociadoRepresentante)
            .GreaterThan(0).WithMessage("Informe qual é o tipo de representante.");

            RuleFor(x => x.AssociadoRepresentante.flagRepresentantaAssociacao)
            .NotEmpty().WithMessage("Informe se ele representa a empresa perante a associação.");

            RuleFor(x => x.AssociadoRepresentante.nome)
            .NotEmpty().WithMessage("Informe o nome do representante.");

            RuleFor(x => x.AssociadoRepresentante.cpf)
            .NotEmpty().WithMessage("Informe o CPF do representante.");

            When(x => !String.IsNullOrEmpty(x.AssociadoRepresentante.cpf), () => {
                RuleFor(x => x.AssociadoRepresentante.cpf)
                .Must((x, nroDocumento) => UtilValidation.isCPFCNPJ(x.AssociadoRepresentante.cpf))
                .WithMessage("Informe um CPF válido.");
            });

            RuleFor(x => x.AssociadoRepresentante.ddiTelPrincipal)
            .NotEmpty().WithMessage("Informe o DDI.");

            RuleFor(x => x.AssociadoRepresentante.dddTelPrincipal)
            .NotEmpty().WithMessage("Informe o DDD.");

            RuleFor(x => x.AssociadoRepresentante.nroTelPrincipal)
            .NotEmpty().WithMessage("Informe o Telefone.");
        }
Exemplo n.º 8
0
        //
        private void vincularAssociados(NotificacaoSistema ONotificacao, List <ItemListaAssociado> listaAssociados)
        {
            var listaNotificacoesVinculadas = new List <NotificacaoSistemaEnvio>();

            foreach (var OAssociado in listaAssociados)
            {
                var listaEmails = new List <string> {
                    OAssociado.email, OAssociado.emailSecundario
                };

                foreach (var email in listaEmails)
                {
                    var OEnvio = new NotificacaoSistemaEnvio();

                    OEnvio.idNotificacao = ONotificacao.id;

                    OEnvio.idReferencia = OAssociado.id;

                    OEnvio.nome = OAssociado.nome;

                    OEnvio.email = email;

                    if (!UtilValidation.isEmail(OEnvio.email))
                    {
                        OEnvio.flagExcluido = true;

                        OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                    }

                    listaNotificacoesVinculadas.Add(OEnvio);
                }
            }

            using (var ctx = this.db) {
                ctx.Configuration.AutoDetectChangesEnabled = false;

                ctx.Configuration.ValidateOnSaveEnabled = false;

                listaNotificacoesVinculadas.ForEach(x => {
                    x.setDefaultInsertValues();
                });

                ctx.NotificacaoSistemaEnvio.AddRange(listaNotificacoesVinculadas);

                ctx.SaveChanges();
            }

            var listaParametros = new List <object>();

            listaParametros.Add(listaNotificacoesVinculadas);

            listaParametros.Add(ONotificacao);

            this.onNotificacaoCadastrada.subscribe(new OnNotificacaoCadastradaHandler());

            this.onNotificacaoCadastrada.publish((listaParametros as object));
        }
Exemplo n.º 9
0
        //
        private void agruparAssociados(List <NotificacaoSistemaEnvio> listaEnvios)
        {
            foreach (var Item in listaEnvios)
            {
                Item.idNotificacao = this.ONotificacaoSistema.id;

                if (UtilValidation.isEmail(Item.email))
                {
                    this.listaDestinatarios.Add(Item);
                }
            }
        }
Exemplo n.º 10
0
        // Capturar a string de e-mails e joga-la dentro de uma lista
        public static List <string> ToEmailList(this Pessoa OPessoa)
        {
            List <string> lista = new List <string>();

            if (OPessoa == null)
            {
                return(lista);
            }

            var listaEmails = OPessoa.listaEmails.Where(x => x.dtExclusao == null && UtilValidation.isEmail(x.email))
                              .Select(x => x.email).Distinct().ToList();

            return(listaEmails);
        }
Exemplo n.º 11
0
        // Cpaturar a string e joga-la dentro de uma lista
        public static List <string> ToEmailList(this NotificacaoSistemaEnvio Item)
        {
            List <string> lista = new List <string>();

            if (Item == null)
            {
                return(lista);
            }

            if (!Item.email.isEmpty() && UtilValidation.isEmail(Item.email))
            {
                lista.Add(Item.email);
            }

            return(lista);
        }
        /// <summary>
        ///
        /// </summary>
        public UtilRetorno validar(List <PessoaEmail> listaEmails, bool flagPermitirDuplicidade)
        {
            if (listaEmails == null)
            {
                return(UtilRetorno.newInstance(true, "Nenhum e-mail encontrado para validação."));
            }

            if (!listaEmails.Any())
            {
                return(UtilRetorno.newInstance(true, "Informe um e-mail."));
            }

            var Retorno = new UtilRetorno();

            Retorno.flagError = false;

            foreach (var OPessoaEmail in listaEmails)
            {
                if (!UtilValidation.isEmail(OPessoaEmail.email))
                {
                    Retorno.flagError = true;

                    Retorno.listaErros.Add($"O endereço {OPessoaEmail.email} não é válida");
                }

                if (flagPermitirDuplicidade)
                {
                    continue;
                }

                var flagExiste = this.EmailConsultaBL.listar(0).Any(x => x.email == OPessoaEmail.email && x.idPessoa != OPessoaEmail.idPessoa);

                if (flagExiste)
                {
                    Retorno.flagError = true;

                    Retorno.listaErros.Add($"O endereço {OPessoaEmail.email} já existe em outro cadastro.");
                }
            }

            if (Retorno.flagError)
            {
                return(Retorno);
            }

            return(UtilRetorno.newInstance(false, "", listaEmails));
        }
Exemplo n.º 13
0
        // 1 - carregar e-mails que devem ser copiados
        // 2 - Chamar servico de disparo de e-mail
        // 3 - Registrar o envio
        public void enviarEmail(List <NotificacaoSistemaEnvio> listaEnvios)
        {
            var listaIdsEnviados = new List <int>();

            var listaIdsExcluidos = new List <int>();

            foreach (var ONotificacaoEnvio in listaEnvios)
            {
                if (!UtilValidation.isEmail(ONotificacaoEnvio.email))
                {
                    listaIdsExcluidos.Add(ONotificacaoEnvio.id);

                    continue;
                }

                var ORetorno = enviarEmail(ONotificacaoEnvio, ONotificacaoEnvio.ToEmailList());

                //Regisrar o envio do e-mail
                if (!ORetorno.flagError)
                {
                    listaIdsEnviados.Add(ONotificacaoEnvio.id);
                }

                if (ORetorno.flagError)
                {
                    listaIdsExcluidos.Add(ONotificacaoEnvio.id);
                }
            }

            if (listaIdsEnviados.Any())
            {
                db.NotificacaoSistemaEnvio.Where(x => listaIdsEnviados.Contains(x.id))
                .Update(x => new NotificacaoSistemaEnvio()
                {
                    dtEnvioEmail = DateTime.Now, flagEnvioEmail = true
                });
            }

            if (listaIdsExcluidos.Any())
            {
                db.NotificacaoSistemaEnvio.Where(x => listaIdsExcluidos.Contains(x.id))
                .Update(x => new NotificacaoSistemaEnvio()
                {
                    flagExcluido = true, motivoExclusao = "Os e-mails configurados não são válidos."
                });
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// Carregar os e-mails dos associados pre-selecionados na query
        /// </summary>
        private List <NotificacaoSistemaEnvio> monstaListaEnvioAssociados(IQueryable <Associado> queryAssociados)
        {
            var listaEmailEnvios = new List <NotificacaoSistemaEnvio>();

            var listaAssociados = queryAssociados.Select(x => new  {
                x.id,
                x.idPessoa,
                x.Pessoa.nome,
                listaEmails = x.Pessoa.listaEmails
                              .Where(e => e.dtExclusao == null && !string.IsNullOrEmpty(e.email))
                              .Select(e => new { e.id, e.email })
            }).ToList().Where(x => x.listaEmails.Any(y => UtilValidation.isEmail(y.email))).ToList();

            if (!listaAssociados.Any())
            {
                return(listaEmailEnvios);
            }

            foreach (var OAssociado in listaAssociados)
            {
                foreach (var OEmail in OAssociado.listaEmails)
                {
                    var OEnvio = new NotificacaoSistemaEnvio();

                    OEnvio.idReferencia = OAssociado.id;

                    OEnvio.idPessoa = OAssociado.idPessoa;

                    OEnvio.nome = OAssociado.nome;

                    OEnvio.email = OEmail.email;

                    if (!UtilValidation.isEmail(OEnvio.email))
                    {
                        OEnvio.flagExcluido = true;

                        OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                    }

                    listaEmailEnvios.Add(OEnvio);
                }
            }

            this.agruparAssociados(listaEmailEnvios);

            return(listaEmailEnvios);
        }
        //Construtor
        public RepresentanteValidator()
        {
            RuleFor(x => x.Representante.Pessoa.nome)
            .NotEmpty().WithMessage("Informe o nome.");

            When(x => !x.Representante.Pessoa.nroDocumento.isEmpty() && x.Representante.Pessoa.flagTipoPessoa == "F", () => {
                RuleFor(x => x.Representante.Pessoa.nroDocumento)
                .Must((x, nroDocumento) => !this.existeCpf(x)).WithMessage("O CPF informado já foi cadastrado anteriormente.")
                .Must((x, nroDocumento) => UtilValidation.isCPF(x.Representante.Pessoa.nroDocumento)).WithMessage("Informe um CPF válido.");
            });

            When(x => !x.Representante.Pessoa.nroDocumento.isEmpty() && x.Representante.Pessoa.flagTipoPessoa == "J", () => {
                RuleFor(x => x.Representante.Pessoa.nroDocumento)
                .Must((x, nroDocumento) => !this.existeCpf(x)).WithMessage("O CNPJ informado já foi cadastrado anteriormente.")
                .Must((x, nroDocumento) => UtilValidation.isCNPJ(x.Representante.Pessoa.nroDocumento)).WithMessage("Informe um CNPJ válido.");
            });
        }
Exemplo n.º 16
0
        //Perarar os dados e validar as mensagens
        protected virtual void prepararMensagem(string nomeArquivoConteudo = "")
        {
            foreach (MailAddress email in this.To)
            {
                if (!UtilValidation.isEmail(email.Address))
                {
                    this.To.Remove(email);
                }
            }

            foreach (MailAddress email in this.CC)
            {
                if (!UtilValidation.isEmail(email.Address))
                {
                    this.CC.Remove(email);
                }
            }

            foreach (MailAddress email in this.Bcc)
            {
                if (!UtilValidation.isEmail(email.Address))
                {
                    this.Bcc.Remove(email);
                }
            }

            if (!UtilConfig.emProducao())
            {
                this.To.Clear();

                this.CC.Clear();

                this.Bcc.Clear();

                if (UtilValidation.isEmail(OConfiguracaoEmail.emailResposta))
                {
                    this.To.Add(OConfiguracaoEmail.emailResposta);
                }
            }

            this.Body = this.capturarConteudoHTML(nomeArquivoConteudo);

            this.BodyEncoding = Encoding.GetEncoding("iso8859-1");

            this.IsBodyHtml = true;
        }
Exemplo n.º 17
0
        public AssociacaoFormValidator()
        {
            RuleFor(x => x.Associacao.Pessoa.nome)
            .NotEmpty().WithMessage("Informe o nome fantasia da Associação.");

            RuleFor(x => x.Associacao.Pessoa.nroDocumento)
            .NotEmpty().WithMessage("O CNPJ da associação é uma informação obrigatória.");

            When(x => !String.IsNullOrEmpty(x.Associacao.Pessoa.nroDocumento), () => {
                RuleFor(x => x.Associacao.Pessoa.nroDocumento)
                .Must((x, nroDocumento) => UtilValidation.isCPFCNPJ(x.Associacao.Pessoa.nroDocumento)).WithMessage("Informe um CNPJ válido.")
                .Must((x, nroDocumento) => !this.existeCNPJ(x)).WithMessage("Já existe uma Associação cadastrada com esse CNPJ.");
            });

            When(x => x.Associacao.idOrganizacaoGestora > 0, () => {
                RuleFor(x => x.Associacao.idOrganizacaoGestora).Must((x, gestora) => !this.unidadesVinculadas(x.Associacao.id)).WithMessage("Uma associação gestora não pode ser vincula");
            });
        }
        public FornecedorValidator(IFornecedorRepository repository)
        {
            RuleFor(x => x.CpfCnpj).NotEmpty()
            .Must(x => UtilValidation.ValidaCnpj(x) || UtilValidation.ValidaCpf(x))
            .WithMessage("Documento não é válido")
            .Must(x => !repository.HasCpfCnpj(x))
            .Unless(x => x.Id.Equals(repository.FindByCpfCnpj(x.CpfCnpj)?.Id))
            .WithMessage("Documento já registrado");

            RuleFor(x => x.DataNascimento).NotEmpty().When(x => UtilValidation.ValidaCpf(x.CpfCnpj));
            RuleFor(x => x.Rg).NotEmpty().When(x => UtilValidation.ValidaCpf(x.CpfCnpj));

            RuleFor(x => x.Email).NotEmpty()
            .Must(x => !repository.HasEmail(x))
            .Unless(x => x.Id.Equals(repository.FindByEmail(x.Email)?.Id))
            .WithMessage("Email já registrado");

            RuleFor(x => x.Nome).NotEmpty();
        }
        /// <summary>
        ///
        /// </summary>
        private void vincularDestinos(ListaAssociadosDTO OListaAssociadosDTO, NotificacaoSistema ONotificacao)
        {
            var listaAssociados = OListaAssociadosDTO.listaAssociados;

            var listaNotificacoesVinculadas = new List <NotificacaoSistemaEnvio>();

            foreach (var OAssociado in listaAssociados)
            {
                var listaEmailsAssociado = OAssociado.Pessoa.ToEmailList();

                var listaEmail = new List <string>();

                listaEmail.AddRange(listaEmailsAssociado);

                foreach (var email in listaEmail)
                {
                    var OEnvio = new NotificacaoSistemaEnvio();

                    OEnvio.idNotificacao = ONotificacao.id;

                    OEnvio.idReferencia = OAssociado.id;

                    OEnvio.nome = OAssociado.Pessoa.nome;

                    OEnvio.email = email;


                    string parametrosPersonalizados = this.montarParametrosPersonalizados(OAssociado, email).abreviar(8000);

                    OEnvio.personalizacao = parametrosPersonalizados;

                    if (!UtilValidation.isEmail(OEnvio.email))
                    {
                        OEnvio.flagExcluido = true;

                        OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                    }

                    listaNotificacoesVinculadas.Add(OEnvio);
                }
            }
        }
        //Propriedades

        //Events

        /// <summary>
        /// Gerar boleto bancario para uma contribuicao
        /// </summary>
        public UtilRetorno gerarPagamentoBoleto(AssociadoContribuicao OAssociadoContribuicao)
        {
            var OTituloReceita = OTituloReceitaBL.carregarPorReceita(OAssociadoContribuicao.id);

            if (OTituloReceita == null)
            {
                var RetornoGerador = this.OTituloReceitaGeradorBL.gerar(OAssociadoContribuicao as object);

                OTituloReceita = RetornoGerador.info as TituloReceita;
            }


            string nroDocumento = OTituloReceita.documentoRecibo;

            string cep = OTituloReceita.cepRecibo;

            if (!UtilValidation.isCPF(nroDocumento) && !UtilValidation.isCNPJ(nroDocumento))
            {
                return(UtilRetorno.newInstance(true, $"O documento do associado é inválido para geração de boleto bancário: {nroDocumento}"));
            }

            if (!UtilValidation.isCEP(cep))
            {
                return(UtilRetorno.newInstance(true, $"O CEP do sacado informado é inválido para geração de boleto bancário: {cep}"));
            }
            var OPagamento = new TituloReceitaPagamento();

            OPagamento.transferirDadosTitulo(OTituloReceita);

            OPagamento.idMeioPagamento = MeioPagamentoConst.BOLETO_BANCARIO;

            OPagamento.idFormaPagamento = FormaPagamentoConst.BOLETO_BANCARIO;

            OPagamento.idStatusPagamento = StatusPagamentoConst.AGUARDANDO_PAGAMENTO;

            OTituloReceitaPagamentoBL.salvar(OPagamento);

            //Essas atribuicoes sao feitas pois apos a geracao do registro é enviado para geracao de boletos e os objetos abaixo serao necessarios, assim economiza-se uma nova ida ao banco de dados
            OPagamento.TituloReceita = OTituloReceita;

            return(UtilRetorno.newInstance(false, "Os dados para geração do boleto foram configurados com sucesso.", OPagamento));
        }
        /// <summary>
        ///
        /// </summary>
        private void vincularDestinos(List <EventoInscricao> listaInscricoes, NotificacaoSistema ONotificacao, TarefaSistema OTarefaSistema)
        {
            var listaNotificacoesVinculadas = new List <NotificacaoSistemaEnvio>();

            foreach (var OInscricao in listaInscricoes)
            {
                var listaEmail = new List <string>();

                listaEmail.Add(OInscricao.emailPrincipal);
                listaEmail.Add(OInscricao.emailSecundario);

                foreach (var email in listaEmail)
                {
                    var OEnvio = new NotificacaoSistemaEnvio();

                    OEnvio.idNotificacao = ONotificacao.id;

                    OEnvio.idReferencia = OInscricao.id;

                    OEnvio.nome = OInscricao.nomeInscrito;

                    OEnvio.email = email;

                    OEnvio.idTarefa = OTarefaSistema?.id;

                    string parametrosPersonalizados = this.montarParametrosPersonalizados(OInscricao).abreviar(8000);

                    OEnvio.personalizacao = parametrosPersonalizados;

                    if (!UtilValidation.isEmail(OEnvio.email))
                    {
                        OEnvio.flagExcluido = true;

                        OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                    }

                    listaNotificacoesVinculadas.Add(OEnvio);
                }
            }

            this.NotificacaoSistemaCadastroBL.salvarDetalhesNotificacao(listaNotificacoesVinculadas);
        }
Exemplo n.º 22
0
        public ActionResult Get(long?documento, string nome)
        {
            if (documento == null && string.IsNullOrWhiteSpace(nome))
            {
                return(BadRequest());
            }
            else if (documento.HasValue)
            {
                if (!UtilValidation.ValidaCnpj(documento.Value))
                {
                    return(BadRequest("Cnpj inválido"));
                }

                var retorno = new List <Empresa>()
                {
                    _empresaBusiness.FindByCnpj(documento.Value)
                };

                if (!retorno.Any())
                {
                    return(NotFound());
                }
                else
                {
                    return(new ObjectResult(retorno));
                }
            }
            else
            {
                var retorno = _empresaBusiness.FindByName(nome);

                if (retorno == null)
                {
                    return(NotFound());
                }
                else
                {
                    return(new ObjectResult(retorno));
                }
            }
        }
Exemplo n.º 23
0
        // Cpaturar a string e joga-la dentro de uma lista
        public static List <string> ToEmailList(this AssociadoContribuicaoEmailCobranca Item)
        {
            List <string> lista = new List <string>();

            if (Item == null)
            {
                return(lista);
            }

            if (UtilValidation.isEmail(Item.emailPrincipal))
            {
                lista.Add(Item.emailPrincipal);
            }

            if (UtilValidation.isEmail(Item.emailSecundario))
            {
                lista.Add(Item.emailSecundario);
            }

            return(lista);
        }
Exemplo n.º 24
0
        //Validacoes para documentos do associado PF
        private void validarDocumentosPF()
        {
            RuleFor(x => x.Associado.Pessoa.idTipoDocumento)
            .NotEmpty().WithMessage("Informe o tipo de documento do associado.");

            When(x => x.Associado.Pessoa.idTipoDocumento > 0, () => {
                RuleFor(x => x.Associado.Pessoa.idTipoDocumento)
                .NotEqual(TipoDocumentoConst.CNPJ).WithMessage("Para uma pessoa física, o documento não pode ser o CNPJ.");
            });

            When(x => x.Associado.Pessoa.idPaisOrigem == "BRA", () => {
                RuleFor(x => x.Associado.Pessoa.nroDocumento)
                .NotEmpty().WithMessage("Para associados brasileiros é obrigatório informar o CPF.");

                When(x => (x.Associado.Pessoa.idTipoDocumento == TipoDocumentoConst.CPF && !String.IsNullOrEmpty(x.Associado.Pessoa.nroDocumento)), () => {
                    RuleFor(x => x.Associado.Pessoa.nroDocumento)
                    .Must((x, cpf) => UtilValidation.isCPFCNPJ(x.Associado.Pessoa.nroDocumento)).WithMessage("Informe um CPF válido.")
                    .Must((x, cpf) => !this.existeCPF(x)).WithMessage("Já existe um associado cadastrado com esse documento.");
                });
            });
        }
Exemplo n.º 25
0
        // Capturar a string de e-mails e joga dentro de uma lista
        public static List <string> ToEmailsPessoa(this Pessoa OPessoa)
        {
            List <string> lista = new List <string>();

            if (OPessoa == null)
            {
                return(lista);
            }

            if (UtilValidation.isEmail(OPessoa.emailPrincipal))
            {
                lista.Add(OPessoa.emailPrincipal);
            }

            if (UtilValidation.isEmail(OPessoa.emailSecundario))
            {
                lista.Add(OPessoa.emailSecundario);
            }

            return(lista);
        }
Exemplo n.º 26
0
        //Validacao para dados pessoa jurídica
        private void validarDadosPJ()
        {
            RuleFor(x => x.Associado.Pessoa.nome)
            .NotEmpty().WithMessage("Informe o nome fantasia da empresa.");

            RuleFor(x => x.Associado.Pessoa.idTipoDocumento)
            .Equal(TipoDocumentoConst.CNPJ).WithMessage("O tipo de documento da empresa deve ser um CNPJ.");

            RuleFor(x => x.Associado.Pessoa.nroDocumento)
            .NotEmpty().WithMessage("O CNPJ da empresa é uma informação obrigatória.");

            When(x => !String.IsNullOrEmpty(x.Associado.Pessoa.nroDocumento), () => {
                RuleFor(x => x.Associado.Pessoa.nroDocumento)
                .Must((x, nroDocumento) => UtilValidation.isCPFCNPJ(x.Associado.Pessoa.nroDocumento)).WithMessage("Informe um CNPJ válido.")
                .Must((x, nroDocumento) => !this.existeCPF(x)).WithMessage("Já existe um associado cadastrado com esse CNPJ.");
            });

            When(x => x.Associado.Pessoa.dtNascimento != null, () => {
                RuleFor(x => x.Associado.Pessoa.dtNascimento)
                .Must((x, dtNascimento) => (x.Associado.Pessoa.dtNascimento > new DateTime(1915, 1, 1) && x.Associado.Pessoa.dtNascimento < DateTime.Today))
                .WithMessage("Informe uma data de fundação válida.");
            });
        }
        //Construtor
        public FornecedorFormValidator()
        {
            //Regras somente para pessoas físicas
            When(m => m.Fornecedor.Pessoa.flagTipoPessoa.Equals("F"), () => {
                RuleFor(x => x.Fornecedor.Pessoa.nome).NotEmpty().WithMessage("Informe o nome do fornecedor.");

                RuleFor(x => x.Fornecedor.Pessoa.nome).Must((x, nome) => !this.existeNome(x)).WithMessage("Já existe um fornecedor com este nome.");;

                When(x => !String.IsNullOrEmpty(x.Fornecedor.Pessoa.nroDocumento), () => {
                    RuleFor(x => UtilString.onlyAlphaNumber(x.Fornecedor.Pessoa.nroDocumento)).Length(11).WithMessage("Um CPF deve possuir 11 caracteres.");
                    RuleFor(x => x.Fornecedor.Pessoa.nroDocumento).Must((nroDocumento) => UtilValidation.isCPFCNPJ(nroDocumento)).WithMessage("Informe um CPF válido.");
                    RuleFor(x => x.Fornecedor.Pessoa.nroDocumento).Must((x, nroDocumento) => !this.existeDocumento(x)).WithMessage("Este CPF já está cadastrado.");
                });
            });

            //Regras somente para pessoas juridicas
            When(m => m.Fornecedor.Pessoa.flagTipoPessoa.Equals("J"), () => {
                RuleFor(x => x.Fornecedor.Pessoa.razaoSocial).NotEmpty().WithMessage("Informe a razão social do fornecedor.");

                RuleFor(x => x.Fornecedor.Pessoa.nome).NotEmpty().WithMessage("Informe o nome fantasia do fornecedor.");

                RuleFor(x => x.Fornecedor.Pessoa.nome).Must((x, nome) => !this.existeNome(x)).WithMessage("Já existe um fornecedor com este nome.");;

                When(x => !String.IsNullOrEmpty(x.Fornecedor.Pessoa.nroDocumento), () => {
                    RuleFor(x => UtilString.onlyAlphaNumber(x.Fornecedor.Pessoa.nroDocumento)).Length(14).WithMessage("Um CNPJ deve possuir 14 caracteres.");
                    RuleFor(x => x.Fornecedor.Pessoa.nroDocumento).Must((nroDocumento) => UtilValidation.isCPFCNPJ(nroDocumento)).WithMessage("Informe um CNPJ válido.");
                    RuleFor(x => x.Fornecedor.Pessoa.nroDocumento).Must((x, nroDocumento) => !this.existeDocumento(x)).WithMessage("Este CNPJ já está cadastrado.");
                });
            });

            //Regra para E-mail principal
            When(m => !String.IsNullOrEmpty(m.Fornecedor.Pessoa.emailPrincipal), () => {
                RuleFor(x => x.Fornecedor.Pessoa.emailPrincipal)
                .EmailAddress().WithMessage("Informe um endereço de e-mail válido.")
                .Must((x, emailPrincipal) => !this.existeEmail(x, x.Fornecedor.Pessoa.emailPrincipal))
                .WithMessage("Já existe um fornecedor utilizando esse e-mail.");
            });

            //Regra para E-mail secundário
            When(m => !String.IsNullOrEmpty(m.Fornecedor.Pessoa.emailSecundario), () => {
                RuleFor(x => x.Fornecedor.Pessoa.emailSecundario)
                .EmailAddress().WithMessage("Informe um endereço de e-mail válido.")
                .Must((x, emailSecundario) => !this.existeEmail(x, x.Fornecedor.Pessoa.emailSecundario))
                .WithMessage("Já existe um fornecedor utilizando esse e-mail.");
            });
        }
Exemplo n.º 28
0
        public ActionResult notificarAssociados(AssociadoNotificacaoForm ViewModel)
        {
            ViewModel.listaAssociados = this.OAssociadoBL.listar(0, "", "", "")
                                        .Where(x => ViewModel.idsAssociados.Contains(x.id))
                                        .Select(x => new ItemListaAssociado {
                id = x.id, nome = x.Pessoa.nome, nroAssociado = x.nroAssociado,
                descricaoTipoAssociado = x.TipoAssociado.nomeDisplay, idPessoa = x.idPessoa,
                email           = x.Pessoa.listaEmails.Where(c => !c.email.Equals("") && c.dtExclusao == null).OrderByDescending(c => c.id).FirstOrDefault().email,
                emailSecundario = x.Pessoa.listaEmails.Where(c => !c.email.Equals("") && c.dtExclusao == null).OrderByDescending(c => c.id).Skip(1).FirstOrDefault().email
            }).OrderBy(x => x.nome).ToList();

            if (!ModelState.IsValid)
            {
                return(View("modal-notificar-associados", ViewModel));
            }

            ViewModel.ONotificacao.flagAssociadosEspecificos = true;

            var listaAssociadosEnvio = new List <NotificacaoSistemaEnvio>();

            foreach (var OAssociado in ViewModel.listaAssociados)
            {
                var listaEmails = new List <string> {
                    OAssociado.email, OAssociado.emailSecundario
                };

                foreach (var email in listaEmails)
                {
                    var OEnvio = new NotificacaoSistemaEnvio();

                    OEnvio.idReferencia = OAssociado.id;

                    OEnvio.nome = OAssociado.nome;

                    OEnvio.email = email;

                    if (!UtilValidation.isEmail(OEnvio.email))
                    {
                        OEnvio.flagExcluido = true;

                        OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                    }

                    listaAssociadosEnvio.Add(OEnvio);
                }
            }

            if (!listaAssociadosEnvio.Any())
            {
                return(Json(new { error = true, message = "Nenhum associado foi informado para enviar a mensagem. Tente novamente." }, JsonRequestBehavior.AllowGet));
            }

            var flagSucesso = this.ONotificacaoAssociadoAvulsaBL.salvar(ViewModel.ONotificacao, listaAssociadosEnvio);

            if (flagSucesso)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, UtilMessage.success("Sucesso!", "Mensagem registrada com sucesso. Os associados a receberão na data informada."));

                return(Json(new { error = false }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { error = true, message = "Houve algum problema ao enviar a mensagem para os associados. Tente novamente." }, JsonRequestBehavior.AllowGet));
        }
        public void adicionarAssociadoIndividual(int idAssociado)
        {
            var listAssociadosEspecificos = SessionNotificacoes.getListAssociadosEspecificos() ?? new List <NotificacaoSistemaEnvio>();

            // Verificar se o associado já está adicionado
            if (listAssociadosEspecificos.FirstOrDefault(x => x.idReferencia == idAssociado) != null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "O associado já está adicionado na sua lista.");
                return;
            }

            var OAssociado = this.OAssociadoBL.listar(0, "", "", "").Where(x => x.id == idAssociado)
                             .Select(x => new AssociadoDadosBasicos()
            {
                id              = x.id, idPessoa = x.idPessoa, nome = x.Pessoa.nome, nroDocumento = x.Pessoa.nroDocumento,
                emailPrincipal  = x.Pessoa.listaEmails.FirstOrDefault(y => y.idTipoEmail == TipoEmailConst.PESSOAL && y.dtExclusao == null).email,
                emailSecundario = x.Pessoa.listaEmails.FirstOrDefault(y => y.idTipoEmail == TipoEmailConst.COMERCIAL && y.dtExclusao == null).email
            }).FirstOrDefault();

            // Verificar se o associado já está adicionado
            if (OAssociado == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "O associado não foi encontrado.");
                return;
            }

            if (!UtilValidation.isEmail(OAssociado.emailPrincipal) &&
                !UtilValidation.isEmail(OAssociado.emailSecundario))
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, $"O associado { OAssociado.nome } (Doc.: { UtilString.formatCPFCNPJ(OAssociado.nroDocumento) }) não possui e-mails válidos cadastrados.");
                return;
            }

            var listaEmails = new List <string> {
                OAssociado.emailPrincipal, OAssociado.emailSecundario
            };

            foreach (var email in listaEmails)
            {
                var OEnvio = new NotificacaoSistemaEnvio();

                OEnvio.idReferencia = OAssociado.id;

                OEnvio.idPessoa = OAssociado.idPessoa;

                OEnvio.nome = OAssociado.nome;

                OEnvio.email = email;

                if (!UtilValidation.isEmail(OEnvio.email))
                {
                    OEnvio.flagExcluido = true;

                    OEnvio.motivoExclusao = "O e-mail configurado não é válido.";
                }

                listAssociadosEspecificos.Add(OEnvio);
            }

            SessionNotificacoes.setListAssociadosEspecificos(listAssociadosEspecificos);
        }
        // 1 - carregar e-mails que devem ser copiados
        // 2 - Chamar servico de disparo de e-mail
        // 3 - Registrar o envio
        public void enviarEmail(List <NotificacaoSistemaEnvio> listaEnvios)
        {
            var listaIdsEnviados = new List <int>();

            var listaIdsExcluidos = new List <int>();

            var listaIdsRemovidos = new List <int>();

            var idsAssociados = listaEnvios.Select(x => x.idReferencia.toInt()).ToList();

            var listaAssociados = db.Associado.condicoesSeguranca().Where(x => idsAssociados.Contains(x.id))
                                  .Select(x => new { x.id, x.idOrganizacao, Pessoa = new { x.Pessoa.nome, x.Pessoa.login } })
                                  .ToListJsonObject <Associado>();

            var ONotificacao = listaEnvios.FirstOrDefault().NotificacaoSistema;

            foreach (var ONotificacaoEnvio in listaEnvios)
            {
                var OAssociado = listaAssociados.FirstOrDefault(x => x.id == ONotificacaoEnvio.idReferencia);

                if (OAssociado == null)
                {
                    listaIdsRemovidos.Add(ONotificacaoEnvio.id);

                    continue;
                }

                if (!UtilValidation.isEmail(ONotificacaoEnvio.email))
                {
                    listaIdsExcluidos.Add(ONotificacaoEnvio.id);

                    continue;
                }

                var ORetorno = enviarEmail(OAssociado, ONotificacao, ONotificacaoEnvio.ToEmailList());

                //Regisrar o envio do e-mail
                if (!ORetorno.flagError)
                {
                    listaIdsEnviados.Add(ONotificacaoEnvio.id);
                }

                if (ORetorno.flagError)
                {
                    listaIdsExcluidos.Add(ONotificacaoEnvio.id);
                }
            }

            if (listaIdsEnviados.Any())
            {
                db.NotificacaoSistemaEnvio.Where(x => listaIdsEnviados.Contains(x.id))
                .Update(x => new NotificacaoSistemaEnvio()
                {
                    dtEnvioEmail = DateTime.Now, flagEnvioEmail = true
                });
            }

            if (listaIdsExcluidos.Any())
            {
                db.NotificacaoSistemaEnvio.Where(x => listaIdsExcluidos.Contains(x.id))
                .Update(x => new NotificacaoSistemaEnvio()
                {
                    flagExcluido = true, motivoExclusao = "Os e-mails configurados não são válidos."
                });
            }

            if (listaIdsRemovidos.Any())
            {
                db.NotificacaoSistemaEnvio
                .Where(x => listaIdsRemovidos.Contains(x.id))
                .Update(x => new NotificacaoSistemaEnvio()
                {
                    flagExcluido = true, motivoExclusao = "O associado informado não existe ou não foi localizado."
                });
            }
        }