示例#1
0
        public void PublicarNotificacao(string link, string texto, DateTime?data, int[] ufs, int[] niveis, int[] perfis)
        {
            var        ufBm  = new BMUf();
            IList <Uf> lstUf = ufs.Select(uf => ufBm.ObterPorId(uf)).ToList();

            var nivelBm = new BMNivelOcupacional();
            IList <NivelOcupacional> lstNivel = niveis.Select(nivel => nivelBm.ObterPorID(nivel)).ToList();

            var            perfilBm  = new BMPerfil();
            IList <Perfil> lstPerfil = perfis.Select(perfil => perfilBm.ObterPorId(perfil)).ToList();


            var usuarios = new BMUsuario().ObterPorUfsNiveisPerfis(lstUf, lstNivel, lstPerfil);


            var notificacaoBm = new BMNotificacao();

            foreach (var u in usuarios)
            {
                notificacaoBm.Salvar(new Notificacao
                {
                    DataGeracao      = DateTime.Now,
                    Link             = link,
                    DataNotificacao  = data,
                    TextoNotificacao = texto,
                    Usuario          = new BMUsuario().ObterPorId(u.ID)
                });
            }
        }
示例#2
0
 public IList <NivelOcupacional> GetNivelOcupacionalTodos()
 {
     using (var noBM = new BMNivelOcupacional())
     {
         return(noBM.ObterTodos().OrderBy(x => x.Nome).ToList());
     }
 }
示例#3
0
 public IList <NivelOcupacional> ObterNivelOcupacionalTodos()
 {
     using (BMNivelOcupacional nivelBM = new BMNivelOcupacional())
     {
         return(nivelBM.ObterTodos().OrderBy(n => n.Nome).ToList());
     }
 }
 public IList <NivelOcupacional> ObterNivelOcupacionalTodas()
 {
     using (BMNivelOcupacional bmNivelOcupacional = new BMNivelOcupacional())
     {
         return(bmNivelOcupacional.ObterTodos());
     }
 }
示例#5
0
        public IList <DTONivelOcupacional> ListarNivelOcupacional()
        {
            IList <DTONivelOcupacional> lstResult = null;

            try
            {
                nivelOcupacionalBM = new BMNivelOcupacional();
                lstResult          = new List <DTONivelOcupacional>();

                foreach (NivelOcupacional noc in nivelOcupacionalBM.ObterTodos())
                {
                    DTONivelOcupacional nodto = new DTONivelOcupacional();
                    CommonHelper.SincronizarDominioParaDTO(noc, nodto);
                    lstResult.Add(nodto);
                }
            }
            catch (Exception ex)
            {
                ErroUtil.Instancia.TratarErro(ex);
            }

            return(lstResult);
        }
 public NivelOcupacional ObterNivelOcupacionalPorID(int pId)
 {
     using (BMNivelOcupacional bm = new BMNivelOcupacional()) { return(bm.ObterPorID(pId)); }
 }
 public IList <NivelOcupacional> ObterNivelOcupacionalTodos()
 {
     using (BMNivelOcupacional noBM = new BMNivelOcupacional()) { return(noBM.ObterTodos()); }
 }
示例#8
0
        public IList <NivelOcupacional> ObterNiveisOcupacionais()
        {
            var bmNivelOcupacional = new BMNivelOcupacional();

            return(bmNivelOcupacional.ObterTodos());
        }
示例#9
0
 public ManterNivelOcupacional()
     : base()
 {
     bmNivelOcupacional = new BMNivelOcupacional();
 }
示例#10
0
        public void PublicarEmail(EmailEnvio emailEnvio, string assunto, string texto,
                                  List <Tuple <Dictionary <string, string>, int> > hashTags, int[] ufs, int[] statusSelecionados,
                                  int[] niveisOcupacionais, int[] perfis, Turma turma = null, int[] usuarios = null)
        {
            var lstUf = new List <Uf>();
            var ufBm  = new BMUf();

            if (ufs != null)
            {
                lstUf.AddRange(ufs.Select(uf => ufBm.ObterPorId(uf)));
            }

            var statusBm  = new BMStatusMatricula();
            var lstStatus = statusSelecionados
                            .Where(status => statusBm.ObterPorId(status) != null)
                            .Select(status => statusBm.ObterPorId(status)).ToList();

            var lstNivel = new List <NivelOcupacional>();
            var nivelBm  = new BMNivelOcupacional();

            if (niveisOcupacionais != null)
            {
                lstNivel.AddRange(niveisOcupacionais.Select(nivel => nivelBm.ObterPorID(nivel)));
            }

            var lstPerfil = new List <Perfil>();
            var perfilBm  = new BMPerfil();

            if (perfis != null)
            {
                lstPerfil.AddRange(perfis.Select(perfil => perfilBm.ObterPorId(perfil)));
            }

            var lstUsuariosIds = new List <int>();

            usuarioBM = new BMUsuario();

            // Caso tenha algum filtro selecionado recupera os usuários filtrados
            if (ufs.Any() || lstStatus.Any() || lstNivel.Any() || lstPerfil.Any() || turma != null)
            {
                //var usuariosFiltrados = usuarioBM.ObterUsuariosParaEnvioEmail(lstUf, lstStatus, lstNivel, lstPerfil, turma);

                var statusIds = lstStatus.Select(x => x.ID).ToList();
                var niveisIds = lstNivel.Select(x => x.ID).ToList();
                var perfisIds = lstPerfil.Select(x => x.ID).ToList();

                var usuariosFiltradosIds = new ManterUsuario().ObterTodosIQueryable()
                                           .Join(new BMUf().ObterTodosIQueryable(), u => u.UF.ID, uf => uf.ID,
                                                 (usuario, uf) => new { usuario, uf })
                                           .Join(new ManterUsuarioPerfil().ObterTodosIQueryable(), join => join.usuario.ID,
                                                 usuarioPerfil => usuarioPerfil.Usuario.ID, (lastJoin, usuarioPerfil) =>
                                                 new
                {
                    lastJoin.usuario,
                    lastJoin.uf,
                    usuarioPerfil
                })
                                           .Join(new ManterMatriculaOferta().ObterTodosIQueryable(), join => join.usuario.ID,
                                                 matricula => matricula.Usuario.ID,
                                                 (lastJoin, matriculaOferta) =>
                                                 new
                {
                    lastJoin.usuario,
                    lastJoin.uf,
                    lastJoin.usuarioPerfil,
                    matriculaOferta
                })
                                           .Join(new ManterMatriculaTurma().ObterTodosIQueryable(), join => join.matriculaOferta.ID,
                                                 matricula => matricula.MatriculaOferta.ID,
                                                 (lastJoin, matriculaTurma) =>
                                                 new
                {
                    lastJoin.usuario,
                    lastJoin.uf,
                    lastJoin.usuarioPerfil,
                    lastJoin.matriculaOferta,
                    matriculaTurma
                })
                                           .Where(x =>
                                                  (!ufs.Any() || ufs.Contains(x.uf.ID)) &&
                                                  (!statusIds.Any() || statusIds.Contains((int)x.matriculaOferta.StatusMatricula)) &&
                                                  (!niveisIds.Any() || niveisIds.Contains(x.usuario.NivelOcupacional.ID)) &&
                                                  (!perfisIds.Any() || perfisIds.Contains(x.usuarioPerfil.Perfil.ID)) &&
                                                  (turma == null || x.matriculaTurma.Turma.ID == turma.ID))
                                           .Select(x => new
                {
                    x.usuario.ID
                })
                                           .Distinct()
                                           .ToList()
                                           .Select(x => x.ID)
                                           .ToList();

                lstUsuariosIds.AddRange(usuariosFiltradosIds);
            }

            // Adiciona usuários avulsos nos filtros gerais
            if (usuarios != null && usuarios.Any())
            {
                var lstUsuarioSelecionados = usuarios.Select(usuario => usuarioBM.ObterPorId(usuario)).Where(x => !lstUsuariosIds.Contains(x.ID));

                lstUsuariosIds.AddRange(lstUsuarioSelecionados.Where(u => u.Ativo).Select(x => x.ID));
            }

            var cpfLogado = usuarioBM.ObterUsuarioLogado().CPF;

            GerarEmailBaseEmail(lstUsuariosIds, assunto, texto, hashTags, cpfLogado, emailEnvio);
        }
示例#11
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);
        }
示例#12
0
 public IList <NivelOcupacional> ObterListaNivelOcupacional()
 {
     nivelOcupacionalBM = new BMNivelOcupacional();
     return(nivelOcupacionalBM.ObterTodos());
 }