Example #1
0
        public IList <NotificacaoEnvio> ObterPorFiltro(NotificacaoEnvio notificacaoEnvio)
        {
            var query = repositorio.session.Query <NotificacaoEnvio>();

            if (notificacaoEnvio != null)
            {
                if (!string.IsNullOrWhiteSpace(notificacaoEnvio.Texto))
                {
                    query = query.Where(x => x.Texto.ToUpper().Contains(notificacaoEnvio.Texto.ToUpper()));
                }

                if (!string.IsNullOrWhiteSpace(notificacaoEnvio.Link))
                {
                    query = query.Where(x => x.Link.ToUpper().Contains(notificacaoEnvio.Link.ToUpper()));
                }

                if (notificacaoEnvio.ID > 0)
                {
                    query = query.Where(x => x.ID == notificacaoEnvio.ID);
                }

                if (notificacaoEnvio.Uf != null)
                {
                    query = query.Where(x => x.Uf.ID == notificacaoEnvio.Uf.ID);
                }
            }

            return(query.ToList <NotificacaoEnvio>());
        }
        public void EmiteNotificacao(NotificacaoEnvio notificacaoEnvio)
        {
            // Notifica os usuários
            var perfis = notificacaoEnvio.ListaPermissao.Where(x => x.Perfil != null).Select(x => x.Perfil).ToList();
            var niveis =
                notificacaoEnvio.ListaPermissao.Where(x => x.NivelOcupacional != null)
                    .Select(x => x.NivelOcupacional)
                    .ToList();
            var ufs = notificacaoEnvio.ListaPermissao.Where(x => x.Uf != null).Select(x => x.Uf).ToList();
            var usuarios = notificacaoEnvio.ListaPermissao.Where(x => x.Usuario != null).Select(x => x.Usuario).ToList();

            // Se tiver turma selecionada
            var permissaoTurma = notificacaoEnvio.ListaPermissao.FirstOrDefault(x => x.Turma != null);

            if (permissaoTurma != null)
            {
                var matriculasTurma = permissaoTurma.Turma.ListaMatriculas;

                if (matriculasTurma.Any())
                {
                    var idsUsuarios = usuarios.Select(x => x.ID).ToList();

                    usuarios.AddRange(
                        matriculasTurma.Where(
                            x =>
                                x.MatriculaOferta.StatusMatricula == enumStatusMatricula.Inscrito &&

                                // Remover usuários que já estão na lista.
                                !idsUsuarios.Contains(x.MatriculaOferta.Usuario.ID))

                            // Selecionar apenas o ID, que é o que interessa.
                            .Select(mt => new Usuario {ID = mt.MatriculaOferta.Usuario.ID}));
                }
            }

            // Obter os usuários do restante das permissões apenas caso algum filtro de permissão tenha sido informado.
            if (ufs.Any() || niveis.Any() || perfis.Any())
            {
                var usuariosUfsNiveisPerfis = new BMUsuario().ObterPorUfsNiveisPerfis(ufs, niveis, perfis).ToList();

                if (usuariosUfsNiveisPerfis.Any())
                {
                    var idsUsuarios = usuarios.Select(x => x.ID).ToList();

                    // Adicionar somente os usuários que já não estão na lista.
                    usuarios.AddRange(usuariosUfsNiveisPerfis.Where(x => !idsUsuarios.Contains(x.ID)));
                }
            }

            new ManterNotificacao().PublicarNotificacao(notificacaoEnvio.Link,
                notificacaoEnvio.Texto,
                usuarios.AsQueryable());
        }
 public void IncluirNotificacaoEnvio(NotificacaoEnvio notificacaoEnvio)
 {
     try
     {
         this.PreencherInformacoesDeAuditoria(notificacaoEnvio);
         bmNotificacaoEnvio.Salvar(notificacaoEnvio);
     }
     catch (AcademicoException ex)
     {
         throw ex;
     }
 }
Example #4
0
        private void ValidarNotificacaoEnvioInformada(NotificacaoEnvio notificacaoEnvio)
        {
            ValidarDependencias(notificacaoEnvio);

            if (string.IsNullOrWhiteSpace(notificacaoEnvio.Texto))
            {
                throw new AcademicoException("Texto. Campo Obrigatório.");
            }

            if (string.IsNullOrWhiteSpace(notificacaoEnvio.Link))
            {
                throw new AcademicoException("Link. Campo Obrigatório.");
            }
        }
Example #5
0
        private void ValidarTurma(NotificacaoEnvio notificacaoEnvio)
        {
            if (string.IsNullOrWhiteSpace(notificacaoEnvio.Texto))
            {
                throw new AcademicoException("Texto. Campo Obrigatório");
            }

            if (string.IsNullOrWhiteSpace(notificacaoEnvio.Link))
            {
                throw new AcademicoException("Link. Campo Obrigatório");
            }

            //if (notificacaoEnvio.Oferta == null || (notificacaoEnvio.Oferta != null && notificacaoEnvio.Oferta.ID == 0)) throw new AcademicoException("Oferta. Campo Obrigatório");
        }
        public void ExcluirNotificacaoEnvio(int idNotificacao)
        {
            try
            {
                NotificacaoEnvio notificacao = null;

                if (idNotificacao > 0)
                {
                    notificacao = bmNotificacaoEnvio.ObterPorID(idNotificacao);
                }

                bmNotificacaoEnvio.Excluir(notificacao);
            }
            catch (AcademicoException ex)
            {
                throw ex;
            }
        }
Example #7
0
        /// <summary>
        /// Adiciona uma notificação para o usuário informado
        /// </summary>
        public void PublicarNotificacao(string link, string texto, int idUsuario, NotificacaoEnvio notificacaoEnvio)
        {
            var usuario = new ManterUsuario().ObterUsuarioPorID(idUsuario);

            var notificacao = new Notificacao
            {
                Link             = link,
                TextoNotificacao = texto,
                DataGeracao      = DateTime.Now,
                DataNotificacao  = DateTime.Now,
                Usuario          = usuario,
                NotificacaoEnvio = notificacaoEnvio
            };

            var notificacaoBm = new BMNotificacao();

            notificacaoBm.Salvar(notificacao);

            // Enviar notificação em tempo real.
            NotificarUsuario(usuario.CPF, notificacao);
        }
 public IList<NotificacaoEnvio> ObterNotificacaoEnvioPorFiltro(NotificacaoEnvio notificacaoEnvio)
 {
     return bmNotificacaoEnvio.ObterPorFiltro(notificacaoEnvio);
 }
 public void AlterarNotificacaoEnvio(NotificacaoEnvio notificacaoEnvio)
 {
     this.PreencherInformacoesDeAuditoria(notificacaoEnvio);
     bmNotificacaoEnvio.Salvar(notificacaoEnvio);
 }
        public IEnumerable<Usuario> CompilarUsuarios(NotificacaoEnvio notificacaoEnvioEdicao)
        {
            var parametros = new Dictionary<string, object>();

            var ufs = string.Join(",",
                notificacaoEnvioEdicao.ListaPermissao.Where(x => x.Uf != null)
                    .Select(x => new {x.Uf.ID})
                    .Select(x => x.ID)
                    .Distinct()
                    .ToList());

            if (!string.IsNullOrWhiteSpace(ufs))
                parametros.Add("Ufs", ufs);

            var niveis = string.Join(",",
                notificacaoEnvioEdicao.ListaPermissao.Where(x => x.NivelOcupacional != null)
                    .Select(x => new {x.NivelOcupacional.ID})
                    .Select(x => x.ID)
                    .Distinct()
                    .ToList());

            if (!string.IsNullOrWhiteSpace(niveis))
                parametros.Add("NiveisOcupacionais", niveis);

            var perfis = string.Join(",",
                notificacaoEnvioEdicao.ListaPermissao.Where(x => x.Perfil != null)
                    .Select(x => new { x.Perfil.ID })
                    .Select(x => x.ID)
                    .Distinct()
                    .ToList());

            if (!string.IsNullOrWhiteSpace(perfis))
                parametros.Add("Perfis", perfis);

            var status = string.Join(",",
                notificacaoEnvioEdicao.ListaPermissao.Where(x => x.Status != null)
                    .Select(x => new { x.Status.ID })
                    .Select(x => x.ID)
                    .Distinct()
                    .ToList());

            if (!string.IsNullOrWhiteSpace(status))
                parametros.Add("Status", status);

            var permissaoTurma = notificacaoEnvioEdicao.ListaPermissao.FirstOrDefault(x => x.Turma != null);

            if (permissaoTurma != null)
                parametros.Add("Turma", permissaoTurma.Turma.ID);

            var usuarios = string.Join(",",
                notificacaoEnvioEdicao.ListaPermissao.Where(x => x.Usuario != null)
                    .Select(x => new { x.Usuario.ID })
                    .Select(x => x.ID)
                    .Distinct()
                    .ToList());

            if (!string.IsNullOrWhiteSpace(usuarios))
                parametros.Add("Usuarios", usuarios);

            var usuariosResult = bmNotificacaoEnvio.ExecutarProcedure<Usuario>("SP_COMPILAR_USUARIOS_NOTIFICACAO", parametros);

            return usuariosResult;
        }
Example #11
0
 public void Salvar(NotificacaoEnvio notificacaoEnvio)
 {
     ValidarNotificacaoEnvioInformada(notificacaoEnvio);
     repositorio.Salvar(notificacaoEnvio);
 }
Example #12
0
 public void Excluir(NotificacaoEnvio notificacaoEnvio)
 {
     repositorio.Excluir(notificacaoEnvio);
 }