public string SenhaDescriptografar(object senha)
        {
            string retorno = string.Empty;

            if (senha != null && senha != "")
            {
                retorno = CriptografiaHelper.Decriptografar(senha.ToString());
            }

            return(retorno);
        }
Exemple #2
0
        public bool AutenticarUsuario(string CPF, string Senha)
        {
            if (string.IsNullOrEmpty(CPF))
            {
                return(false);
            }

            if (CPF.Trim().ToLower().Equals("usuariodrupal"))
            {
                ConfiguracaoSistema configuracaoSistema = new BMConfiguracaoSistema().ObterPorID((int)enumConfiguracaoSistema.SenhaUsuarioDefaultDrupal);
                Senha = configuracaoSistema.Registro;
                return(true);
            }


            using (BMUsuario userBM = new BMUsuario())
            {
                Usuario us = userBM.ObterPorCPF(CPF);

                if (us == null)
                {
                    return(false);
                }
                else
                {
                    if (string.IsNullOrEmpty(us.Senha))
                    {
                        return(false);
                    }

                    string senhaCriptografada = CriptografiaHelper.Criptografar(Senha);

                    if (us.Senha.ToLower().Equals(senhaCriptografada.ToLower()))
                    {
                        return(true);
                    }
                    else if (Senha.ToLower() == CriptografiaHelper.ObterHashMD5(CriptografiaHelper.Decriptografar(us.Senha)).ToLower())
                    {
                        return(true);
                    }
                }
                return(false);
            }

            //return !(usuario == null || usuario.ID <= 0);
        }
Exemple #3
0
        public string ConsultaURLAcesso(int idFornecedor, Usuario usuario)
        {
            try
            {
                Fornecedor fornecedor = new BMFornecedor().ObterPorID(idFornecedor);

                if (fornecedor == null)
                {
                    throw new AcademicoException("Não foi possível encontrar o Fornecedor");
                }
                if (usuario == null)
                {
                    throw new AcademicoException("Não foi possível encontrar o Usuário");
                }

                string linkAcesso        = fornecedor.LinkAcesso;
                string textoCriptografia = fornecedor.TextoCriptografia;
                string token;
                if (string.IsNullOrEmpty(textoCriptografia))
                {
                    token = CriptografiaHelper.Criptografar(usuario.CPF);
                }
                else
                {
                    token = CriptografiaHelper.Criptografar(usuario.CPF, textoCriptografia);
                }
                string senhaAberta = CriptografiaHelper.Decriptografar(usuario.Senha);
                string senhaMD5    = CriptografiaHelper.ObterHashMD5(senhaAberta);

                return(linkAcesso.Replace("#CPF", usuario.CPF)
                       .Replace("#TOKEN", token)
                       .Replace("#SENHAMD5", senhaMD5)
                       );
            }
            catch
            {
                return("");
            }
        }
Exemple #4
0
 protected void btnEnviar_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(txtCPF.Text))
     {
         var usuario = bmUsuario.ObterPorCPF(txtCPF.Text.Trim());
         if (usuario != null)
         {
             try
             {
                 liRetorno.Text = CriptografiaHelper.Decriptografar(usuario.Senha);
             }
             catch
             {
                 liRetorno.Text = "Ocorreu um erro, ou o usuário não tem senha registrada";
             }
         }
         else
         {
             liRetorno.Text = "Usuário não encontrado";
         }
     }
 }
Exemple #5
0
        public void MatricularSolucaoEducacional(int idUsuario, int idSolucaoEducacional, int idOferta,
                                                 List <int> pListaIdMetaIndividualAssociada, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao)
        {
            Usuario            userSelected       = new BMUsuario().ObterPorId(idUsuario);
            SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterPorId(idSolucaoEducacional);
            BMMatriculaOferta  moBM = new BMMatriculaOferta();

            if (solucaoEducacional == null)
            {
                throw new AcademicoException("Solução Educacional não encontrada");
            }

            //VALIDAR SE ELE TEM ALGUMA OFERTA EXCLUSIVA PENDENTE DE CONFIRMACAO
            if (userSelected.ListaMatriculaOferta.Any(x => x.Oferta.ID == idOferta && x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno && x.Oferta.DataFim.Value.Date >= DateTime.Now.Date))
            {
                MatriculaOferta mo = userSelected.ListaMatriculaOferta.Where(x => x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno).FirstOrDefault();

                if (mo != null)
                {
                    mo.StatusMatricula = enumStatusMatricula.Inscrito;
                    mo.Auditoria       = new Auditoria(autenticacao.Login);
                    moBM.Salvar(mo);
                    ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao);
                    ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao);

                    if (!(mo.MatriculaTurma != null && mo.MatriculaTurma.Count > 0))
                    {
                        try
                        {
                            if (mo.Oferta.TipoOferta.Equals(enumTipoOferta.Continua))
                            {
                                string retornows;
                                switch (mo.Oferta.SolucaoEducacional.Fornecedor.ID)
                                {
                                case (int)enumFornecedor.MoodleSebrae:
                                    moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient();
                                    retornows = soapCliente.MatricularAluno(
                                        userSelected.Nome,
                                        userSelected.CPF,
                                        userSelected.Email,
                                        userSelected.Cidade,
                                        mo.Oferta.SolucaoEducacional.IDChaveExterna.ToString(),
                                        mo.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString());
                                    break;

                                case (int)enumFornecedor.WebAula:
                                    Turma turma = mo.MatriculaTurma.FirstOrDefault().Turma;
                                    webaula.waIntegracaoSoapClient        wa  = new webaula.waIntegracaoSoapClient();
                                    webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest();
                                    webaula.DTOUsuario dtoUsuario             = new webaula.DTOUsuario();
                                    webaula.DTOTurma   dtoTurma = new webaula.DTOTurma();
                                    dtoTurma.IDChaveExterna = turma.IDChaveExterna;
                                    dtoUsuario.CPF          = userSelected.CPF;
                                    dtoUsuario.Email        = userSelected.Email;
                                    dtoUsuario.Nome         = userSelected.Nome;
                                    dtoUsuario.Sexo         = userSelected.Sexo;
                                    dtoUsuario.UF           = userSelected.UF.Sigla;
                                    aut.Login = mo.Oferta.SolucaoEducacional.Fornecedor.Login;
                                    aut.Senha = CriptografiaHelper.Decriptografar(mo.Oferta.SolucaoEducacional.Fornecedor.Senha);
                                    retornows = wa.Matricular(aut, dtoUsuario, dtoTurma);
                                    break;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            ErroUtil.Instancia.TratarErro(ex);
                        }
                    }

                    if (!string.IsNullOrEmpty(mo.Usuario.Email))
                    {
                        Template mensagemRecuperacaoDeSenhaSemConfirmacao = TemplateUtil.ObterInformacoes(enumTemplate.InscricaoSESucesso);
                        string   assuntoDoEmail = mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.Substring(0, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.IndexOf(Environment.NewLine));

                        Dictionary <string, string> registros = new Dictionary <string, string>();
                        registros.Add("NOMESOLUCAOEDUCACIONAL", mo.Oferta.SolucaoEducacional.Nome);
                        registros.Add("DATASISTEMA", DateTime.Now.ToString("dd'/'MM'/'yyyy HH:mm"));
                        registros.Add("NOMEALUNO", mo.Usuario.Nome);
                        //Envia e-mail para o usuário
                        EmailUtil.Instancia.EnviarEmail(mo.Usuario.Email,
                                                        assuntoDoEmail,
                                                        this.FormatarTextoEmail(registros, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate)
                                                        );
                    }

                    return;
                }
            }

            //Verificando se existe alguma matricula na SE.
            MatriculaOferta buscaMatricula = new MatriculaOferta();

            buscaMatricula.Usuario    = new Usuario();
            buscaMatricula.Usuario.ID = userSelected.ID;
            List <MatriculaOferta> possiveisMatriculas = new BMMatriculaOferta().ObterPorFiltro(buscaMatricula).ToList();

            if (possiveisMatriculas != null && possiveisMatriculas.Any(y => y.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && !(y.StatusMatricula == enumStatusMatricula.CanceladoAdm || y.StatusMatricula == enumStatusMatricula.CanceladoAluno)))
            {
                throw new AcademicoException("Erro: O usuário já está matriculado em uma oferta desta Solução Educacional");
            }

            //VALIDAR SE O USUARIO POSSUI ACESSO A SE
            bool usuarioPossuiPermissao = new BMSolucaoEducacional().VerificarSeUsuarioPossuiPermissao(idUsuario, solucaoEducacional.ID); // .ObterListaUsuariosPermitidos();

            if (!usuarioPossuiPermissao)
            {
                throw new AcademicoException("Erro: O usuário Informado não possui permissão à Solução Educacional");
            }

            //VALIDAR SE O USUARIO ESTA CURSANDO OUTRA SE
            if (userSelected.ListaMatriculaOferta.Any(y => y.Usuario.ID == userSelected.ID && y.StatusMatricula == enumStatusMatricula.Inscrito))
            {
                throw new AcademicoException("Erro: O usuário já está inscrito em outra oferta.");
            }

            //VALIDAR SE O USUARIO ESTA COM ALGUM ABANDONO ATIVO
            if (new BMUsuarioAbandono().ValidarAbandonoAtivo(idUsuario))
            {
                throw new AcademicoException("Erro: Existe um abandono registrado para este usuário!");
            }


            Oferta oferta = new Oferta();

            oferta = solucaoEducacional.ListaOferta.FirstOrDefault(x => x.ID == idOferta);
            if (oferta == null)
            {
                throw new AcademicoException("Erro: Oferta não encontrada");
            }

            //VALIDADO OFERTA CONTINUA.
            if (oferta.TipoOferta.Equals(enumTipoOferta.Continua))
            {
                Turma t = null;
                if (oferta.SolucaoEducacional.Fornecedor.PermiteGestaoSGUS)
                {
                    t = oferta.ListaTurma.FirstOrDefault(x => x.DataFinal == null || x.DataFinal.Value.Date >= DateTime.Now.Date && x.InAberta);
                }

                int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm &&
                                                                                   x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count();
                MatriculaOferta matriculaOferta = new MatriculaOferta()
                {
                    Oferta          = new BMOferta().ObterPorId(oferta.ID),
                    Usuario         = new BMUsuario().ObterPorId(userSelected.ID),
                    Auditoria       = new Auditoria(autenticacao.Login),
                    DataSolicitacao = DateTime.Now,
                    UF = new BMUf().ObterPorId(userSelected.UF.ID),
                    NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID)
                };

                if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes)
                {
                    if (oferta.FiladeEspera)
                    {
                        matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera;
                    }
                    else
                    {
                        throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida");
                    }
                }
                else
                {
                    matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito;
                }

                qtdInscritosNaOferta++;

                if (t != null)
                {
                    MatriculaTurma matriculaTurma = new MatriculaTurma()
                    {
                        Turma           = new BMTurma().ObterPorID(t.ID),
                        Auditoria       = new Auditoria(autenticacao.Login),
                        DataMatricula   = DateTime.Now,
                        MatriculaOferta = matriculaOferta,
                        DataLimite      = DateTime.Today.AddDays(oferta.DiasPrazo)
                    };
                    if (matriculaOferta.MatriculaTurma == null)
                    {
                        matriculaOferta.MatriculaTurma = new List <MatriculaTurma>();
                    }
                    matriculaOferta.MatriculaTurma.Add(matriculaTurma);
                }

                moBM.Salvar(matriculaOferta);


                //validando se a turma já está chegando ao limite.
                if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro)))
                {
                    EnviarEmailLimiteOferta(oferta, matriculaOferta);
                }


                ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao);
                ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao);

                try
                {
                    if (matriculaOferta.Oferta.TipoOferta.Equals(enumTipoOferta.Continua) && matriculaOferta.MatriculaTurma != null)
                    {
                        string retornows;
                        switch (matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.ID)
                        {
                        case (int)enumFornecedor.MoodleSebrae:
                            moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient();
                            retornows = soapCliente.MatricularAluno(userSelected.Nome, userSelected.CPF, userSelected.Email, userSelected.Cidade, matriculaOferta.Oferta.SolucaoEducacional.IDChaveExterna.ToString(), matriculaOferta.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString());
                            break;

                        case (int)enumFornecedor.WebAula:
                            Turma turma = matriculaOferta.MatriculaTurma.FirstOrDefault().Turma;
                            webaula.waIntegracaoSoapClient        wa  = new webaula.waIntegracaoSoapClient();
                            webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest();
                            webaula.DTOUsuario dtoUsuario             = new webaula.DTOUsuario();
                            webaula.DTOTurma   dtoTurma = new webaula.DTOTurma();
                            dtoTurma.IDChaveExterna = turma.IDChaveExterna;
                            dtoUsuario.CPF          = userSelected.CPF;
                            dtoUsuario.Email        = userSelected.Email;
                            dtoUsuario.Nome         = userSelected.Nome;
                            dtoUsuario.Sexo         = userSelected.Sexo;
                            dtoUsuario.UF           = userSelected.UF.Sigla;
                            aut.Login = matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Login;
                            aut.Senha = CriptografiaHelper.Decriptografar(matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Senha);
                            retornows = wa.Matricular(aut, dtoUsuario, dtoTurma);
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ErroUtil.Instancia.TratarErro(ex);
                }
                return;
            }

            //VALIDANDO A OFETA NORMAL
            if (oferta.TipoOferta.Equals(enumTipoOferta.Normal))
            {
                int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm &&
                                                                                   x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count();
                MatriculaOferta matriculaOferta = new MatriculaOferta()
                {
                    Oferta          = new BMOferta().ObterPorId(oferta.ID),
                    Usuario         = new BMUsuario().ObterPorId(userSelected.ID),
                    Auditoria       = new Auditoria(autenticacao.Login),
                    DataSolicitacao = DateTime.Now,
                    UF = new BMUf().ObterPorId(userSelected.UF.ID),
                    NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID)
                };

                if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes)
                {
                    if (oferta.FiladeEspera)
                    {
                        matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera;
                    }
                    else
                    {
                        throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida");
                    }
                }
                else
                {
                    matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito;
                }


                BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta();
                bmMatriculaOferta.Salvar(matriculaOferta);
                qtdInscritosNaOferta++;

                //validando se a turma já está chegando ao limite.
                if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro)))
                {
                    EnviarEmailLimiteOferta(oferta, matriculaOferta);
                }


                ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao);
                ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao);
                return;
            }
            throw new Exception("Não foi encontrado ofertas para esse usuário!");
        }
        private void ExecutarSincronizacao(int idProfessor)
        {
            var professor = new BMProfessor().ObterPorId(idProfessor);

            if (professor != null)
            {
                var bmUsuarioMoodle = new BMUsuarioMoodle();

                string cpf   = professor.Cpf;
                string email = professor.Email;

                var usuarioSgus = new BMUsuario().ObterPorCPF(cpf);

                if (usuarioSgus == null)
                {
                    usuarioSgus                  = new Usuario();
                    usuarioSgus.Auditoria        = new Auditoria(new BMUsuario().ObterUsuarioLogado().CPF);
                    usuarioSgus.Bairro           = professor.Bairro;
                    usuarioSgus.Cep              = professor.CEP;
                    usuarioSgus.Cidade           = professor.Cidade;
                    usuarioSgus.CPF              = professor.Cpf;
                    usuarioSgus.DataNascimento   = professor.DataNascimento;
                    usuarioSgus.Email            = professor.Email;
                    usuarioSgus.Endereco         = professor.Endereco;
                    usuarioSgus.Estado           = professor.Estado;
                    usuarioSgus.EstadoCivil      = professor.EstadoCivil;
                    usuarioSgus.Nacionalidade    = professor.Nacionalidade;
                    usuarioSgus.Naturalidade     = professor.Naturalidade;
                    usuarioSgus.Nome             = professor.Nome;
                    usuarioSgus.NomeMae          = professor.NomeMae;
                    usuarioSgus.NomePai          = professor.NomePai;
                    usuarioSgus.Senha            = CriptografiaHelper.Criptografar("sebrae2014");
                    usuarioSgus.TelCelular       = professor.TelefoneCelular;
                    usuarioSgus.TelefoneExibicao = professor.Telefone;
                    usuarioSgus.TipoDocumento    = professor.TipoDocumentoRG;

                    //new BMUsuario().Salvar(usuarioSgus);
                }

                bool usuarioExistenteNoMoodle = bmUsuarioMoodle.ObterPorEmailOuUsuarioExistente(usuarioSgus.CPF, usuarioSgus.Email);

                if (!usuarioExistenteNoMoodle)
                {
                    var usuarioMoodle = new UsuarioMoodle();

                    usuarioMoodle.Autorizacao = "sgus";
                    usuarioMoodle.Usuario     = usuarioSgus.CPF;
                    usuarioMoodle.Senha       = CriptografiaHelper.ObterHashMD5(CriptografiaHelper.Decriptografar(usuarioSgus.Senha));
                    usuarioMoodle.IdNumero    = "";
                    usuarioMoodle.Nome        = usuarioSgus.Nome.Split(' ')[0].Replace(" ", "");
                    usuarioMoodle.Sobrenome   = usuarioSgus.Nome.Split(' ')[usuarioSgus.Nome.Split(',').Length].Replace(" ", "");
                    usuarioMoodle.Email       = usuarioSgus.Email;
                    usuarioMoodle.EmailParado = false;
                    if (!string.IsNullOrEmpty(usuarioSgus.Cidade))
                    {
                        usuarioMoodle.Cidade = usuarioSgus.Cidade;
                        if (usuarioSgus.UF != null)
                        {
                            usuarioMoodle.Cidade += "/" + usuarioSgus.UF.Sigla;
                        }
                    }
                    usuarioMoodle.Pais        = "BR";
                    usuarioMoodle.Idioma      = "pt_br";
                    usuarioMoodle.ZonaHoraria = "99";

                    //bmUsuarioMoodle.Salvar(usuarioMoodle);

                    var bmSgusMoodleCursos = new BMSgusMoodleCurso();
                    int codCat             = 0;

                    foreach (var item in professor.ListaTurma)
                    {
                        if (item.Oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.MoodleSebrae)
                        {
                            if (int.TryParse(item.Oferta.SolucaoEducacional.IDChaveExterna, out codCat))
                            {
                                var categoria = bmSgusMoodleCursos.ObterPorCategoria(codCat);

                                var enrol = new BMInscricao().ObterPorFiltro(new Inscricao {
                                    IDCurso = categoria.CodigoCurso, TipoInscricao = "manual"
                                }).FirstOrDefault();

                                if (enrol != null)
                                {
                                    UsuarioMoodleInscricao pUsuarioMoodleInscricao = new UsuarioMoodleInscricao();
                                    pUsuarioMoodleInscricao.IDInscricao   = enrol.ID;
                                    pUsuarioMoodleInscricao.UsuarioMoodle = usuarioMoodle;

                                    //new BMUsuarioMoodleInscricao().Salvar(pUsuarioMoodleInscricao);
                                }
                            }
                        }
                    }
                }
            }

            WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Professor sincronizado com sucesso", "ListarProfessor.aspx");
        }
Exemple #7
0
        public string ConsultarLinkAcessoFornecedor(Fornecedor fornecedor, Usuario usuario, string codigoMoodle)
        {
            var retorno = string.Empty;

            try
            {
                switch (fornecedor.ID)
                {
                case (int)enumFornecedor.WebAula:
                    retorno = fornecedor.LinkAcesso;
                    retorno = retorno.Replace("#TOKEN", HttpUtility.UrlEncode(CriptografiaHelper.Criptografar(usuario.CPF, fornecedor.TextoCriptografia)));
                    break;

                case (int)enumFornecedor.MoodleSebrae:
                    retorno = fornecedor.LinkAcesso;
                    retorno = retorno.Replace("#CPFAES", HttpUtility.UrlEncode(CriptografiaHelper.Criptografar(usuario.CPF, fornecedor.TextoCriptografia)));
                    retorno = retorno.Replace("#CPF", usuario.CPF);
                    retorno = retorno.Replace("#SENAES", HttpUtility.UrlEncode(CriptografiaHelper.Criptografar(CriptografiaHelper.Decriptografar(usuario.Senha), fornecedor.TextoCriptografia)));
                    retorno = retorno.Replace("#CODIGOMOODLE", codigoMoodle);
                    break;
                }
            }
            catch (Exception ex)
            {
                ErroUtil.Instancia.TratarErro(ex);
            }
            return(retorno);
        }
Exemple #8
0
        private void GerarEmailBaseEmail(IList <int> usuariosIds, string assunto, string texto,
                                         List <Tuple <Dictionary <string, string>, int> > hashTags, string cpfLogado, EmailEnvio emailEnvio)
        {
            var count     = 0;
            var endPortal =
                ListaConfiguracaoSistema.FirstOrDefault(x => x.ID == (int)enumConfiguracaoSistema.EnderecoPortal)?
                .Registro;
            var endSgus =
                ListaConfiguracaoSistema.FirstOrDefault(x => x.ID == (int)enumConfiguracaoSistema.EnderecoSGUS)?
                .Registro;

            foreach (var u in usuariosIds)
            {
                if (emailEnvio.ListaEmailsGerados.Any(x => x.Usuario.ID == u))
                {
                    continue;
                }

                var usuario = usuarioBM.ObterPorId(u);

                var textoEmailUsuario = texto.Replace("#NOME_ALUNO", usuario.Nome)
                                        .Replace("#CPF", usuario.CPF)
                                        .Replace("#UF", usuario.UF.Nome)
                                        .Replace("#EMAIL", usuario.Email)
                                        .Replace("#SENHA", CriptografiaHelper.Decriptografar(usuario.Senha))
                                        .Replace("#URL_PORTAL", endPortal)
                                        .Replace("#URL_SGUS", endSgus);

                if (hashTags != null)
                {
                    textoEmailUsuario = hashTags.Where(x => x.Item2 == usuario.ID)
                                        .Aggregate(textoEmailUsuario,
                                                   (current1, registro) =>
                                                   registro.Item1.Aggregate(current1,
                                                                            (current, item) => current.Replace(item.Key, item.Value)));
                }

                var email = new Email
                {
                    DataGeracao = DateTime.Now,
                    Assunto     = assunto,
                    TextoEmail  = textoEmailUsuario,
                    Enviado     = false,
                    Usuario     = usuario,
                    EmailEnvio  = emailEnvio,
                    Auditoria   = new Auditoria(cpfLogado)
                };

                count++;
                bmEmail.SalvarSemCommit(email);

                if (count < 300)
                {
                    continue;
                }

                bmEmail.Commit();
                count = 0;
            }

            bmEmail.Commit();
        }
Exemple #9
0
        public DTOConsultaUsuarioPorFiltro ConsultarUsuarioPorFiltro(string nome, string email, int ID_UF, int ID_NivelOcupacional, int page, int maxPerPage)
        {
            DTOConsultaUsuarioPorFiltro dtoConsultaUsuarioPorFiltro = new DTOConsultaUsuarioPorFiltro();

            BMUsuario bmUsuario = new BMUsuario();

            Usuario usuario = new Usuario {
                Nome  = nome,
                Email = email
            };

            // Obtem o estado especificado
            if (ID_UF != 0)
            {
                Uf uf = new BMUf().ObterPorId(ID_UF);

                if (uf != null && uf.ID != 0)
                {
                    usuario.UF = uf;
                }
            }

            // Obtem o nivel ocupacional especificado
            if (ID_NivelOcupacional != 0)
            {
                NivelOcupacional nivelOcupacional = new BMNivelOcupacional().ObterPorID(ID_NivelOcupacional);

                if (nivelOcupacional != null && nivelOcupacional.ID != 0)
                {
                    usuario.NivelOcupacional = nivelOcupacional;
                }
            }

            bmUsuario = new BMUsuario();

            // Máximo por página
            maxPerPage = maxPerPage > 500 ? 500 : maxPerPage;

            var query = bmUsuario.ObterQueryPorFiltros(usuario);

            IList <Usuario> usuarios;

            var total = query.Count();

            query = query.OrderBy(x => x.Nome);

            if (total > maxPerPage)
            {
                query = query.Select(x => new Usuario {
                    ID = x.ID, Nome = x.Nome, Email = x.Email, CPF = x.CPF, DataNascimento = x.DataNascimento, SID_Usuario = x.SID_Usuario, Senha = x.Senha, Situacao = x.Situacao.Trim(), Sexo = x.Sexo
                });
                query    = query.Skip(page * maxPerPage).Take(maxPerPage);
                usuarios = query.ToList();

                dtoConsultaUsuarioPorFiltro.totalPages = (int)Math.Ceiling((double)total / (double)maxPerPage);
            }
            else
            {
                usuarios = query.ToList();
                dtoConsultaUsuarioPorFiltro.totalPages = 1;
            }

            if (usuarios.Any())
            {
                foreach (var u in usuarios)
                {
                    dtoConsultaUsuarioPorFiltro.ListaConsultaUsuario.Add(
                        new DTOConsultaUsuarioPorFiltroItem
                    {
                        Nome           = u.Nome,
                        Email          = u.Email,
                        CPF            = u.CPF,
                        DataNascimento = u.DataNascimento,
                        SID_Usuario    = u.SID_Usuario,
                        SenhaMD5       = CriptografiaHelper.ObterHashMD5(CriptografiaHelper.Decriptografar(u.Senha)),
                        Situacao       = u.Situacao.Trim(),
                        Sexo           = u.Sexo
                    }
                        );
                }
            }

            dtoConsultaUsuarioPorFiltro.totalRegistros = total;
            dtoConsultaUsuarioPorFiltro.currentPage    = page;

            return(dtoConsultaUsuarioPorFiltro);
        }