Exemple #1
0
        public override IEnumerable <EmailLogViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            DateTime data1            = param.Count() > 0 && param[0] != null ? (DateTime)param[0] : new DateTime(1980, 1, 1);
            DateTime data2            = param.Count() > 1 && param[1] != null ? (DateTime)param[1] : Funcoes.Brasilia().Date.AddDays(30);
            string   EdificacaoID     = "";
            string   GrupoCondominoID = "";
            string   IsHome           = "N";

            if (param.Count() > 2)
            {
                IsHome = "S";
                if (param[2] != null)
                {
                    int[] GrupoCondomino = (int[])param[2];
                    for (int i = 0; i <= GrupoCondomino.Count() - 1; i++)
                    {
                        GrupoCondominoID += GrupoCondominoID[i].ToString() + ";";
                    }
                }

                if (param[3] != null)
                {
                    IEnumerable <Unidade> Unidades = (IEnumerable <Unidade>)param[3];
                    foreach (var unidade in Unidades)
                    {
                        EdificacaoID += unidade.EdificacaoID + ";";
                    }
                }
            }

            IEnumerable <EmailLogViewModel> foldase = (from info in db.EmailLogs
                                                       join gru in db.GrupoCondominos on info.GrupoCondominoID equals gru.GrupoCondominoID into GRU
                                                       from gru in GRU.DefaultIfEmpty()
                                                       join edi in db.Edificacaos on info.EdificacaoID equals edi.EdificacaoID into EDI
                                                       from edi in EDI.DefaultIfEmpty()
                                                       join eti in db.EmailTipos on info.EmailTipoID equals eti.EmailTipoID
                                                       where info.DataEmail >= data1 && info.DataEmail <= data2 &&
                                                       info.CondominioID == SessaoLocal.empresaId &&
                                                       (IsHome == "N" || info.DataEmail >= SqlFunctions.GetDate()) &&
                                                       (GrupoCondominoID == "" || GrupoCondominoID.Contains(info.GrupoCondominoID.ToString())) &&
                                                       (EdificacaoID == "" || EdificacaoID.Contains(info.EdificacaoID.ToString())) &&
                                                       (eti.CondominioID == SessaoLocal.empresaId)
                                                       orderby info.DataEmail descending
                                                       select new EmailLogViewModel
            {
                empresaId = sessaoCorrente.empresaId,
                EmailLogID = info.EmailLogID,
                CondominioID = info.CondominioID,
                EdificacaoID = info.EdificacaoID,
                Descricao_Edificacao = edi.Descricao,
                GrupoCondominoID = gru.GrupoCondominoID,
                Descricao_GrupoCondomino = gru.Descricao,
                DataEmail = info.DataEmail,
                Assunto = info.Assunto,
                EmailMensagem = info.EmailMensagem,
                EmailTipoID = info.EmailTipoID,
                UnidadeID = info.UnidadeID,
                sessionId = sessaoCorrente.sessaoId,
                Descricao_EmailTipo = eti.Descricao,
            }).ToList();

            int contador = 0;

            foreach (EmailLogViewModel log in foldase)
            {
                if (log.UnidadeID.HasValue)
                {
                    foldase.ElementAt(contador).Codigo = db.Unidades.Find(log.CondominioID, log.EdificacaoID, log.UnidadeID).Codigo;
                }
                contador++;
            }

            return(foldase);
        }
Exemple #2
0
        public override IEnumerable <ArquivoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            System.DateTime _data1            = (DateTime)param[0];
            System.DateTime _data2            = (DateTime)param[1];
            int             _EdificacaoID     = (int)param[2];
            int             _UnidadeID        = (int)param[3];
            int             _CondominoID      = (int)param[4];
            int             _GrupoCondominoID = (int?)param[5] ?? 0;
            string          _Nome             = (string)param[6];

            IEnumerable <ArquivoViewModel> archive = new List <ArquivoViewModel>();

            if (_CondominoID > 0)
            {
                string _EdificacaoCondomino = "";

                foreach (Unidade unidade in SessaoLocal.Unidades)
                {
                    _EdificacaoCondomino += unidade.EdificacaoID.ToString() + "|";
                }

                // arquivos do condômino
                archive = (from arq in db.Arquivos
                           join edi in db.Edificacaos on arq.EdificacaoID equals edi.EdificacaoID into EDI
                           from edi in EDI.DefaultIfEmpty()
                           join gru in db.GrupoCondominos on arq.GrupoCondominoID equals gru.GrupoCondominoID into GRU
                           from gru in GRU.DefaultIfEmpty()
                           join con in db.Condominos on arq.CondominoID equals con.CondominoID into CON
                           from con in CON.DefaultIfEmpty()
                           where arq.CondominioID == sessaoCorrente.empresaId &&
                           ((arq.Data >= _data1 && arq.Data <= _data2) || arq.IndSempreVisivel == "S") &&
                           (arq.CondominoID == _CondominoID) &&
                           (_Nome == null || _Nome == "" || arq.Nome.Contains(_Nome))
                           select new ArquivoViewModel()
                {
                    empresaId = SessaoLocal.empresaId,
                    CondominioID = SessaoLocal.empresaId,
                    FileID = arq.FileID,
                    EdificacaoID = arq.EdificacaoID,
                    EdificacaoDescricao = edi.Descricao,
                    UnidadeID = arq.UnidadeID,
                    CondominoID = arq.CondominoID,
                    CondominoNome = con.Nome,
                    GrupoCondominoID = arq.GrupoCondominoID,
                    GrupoCondominoDescricao = gru.Descricao,
                    Nome = arq.Nome,
                    Data = arq.Data,
                    IndSempreVisivel = arq.IndSempreVisivel
                }).Union(from arq in db.Arquivos            // arquivos com visibilidade pública
                         join edi in db.Edificacaos on arq.EdificacaoID equals edi.EdificacaoID into EDI
                         from edi in EDI.DefaultIfEmpty()
                         join gru in db.GrupoCondominos on arq.GrupoCondominoID equals gru.GrupoCondominoID into GRU
                         from gru in GRU.DefaultIfEmpty()
                         join con in db.Condominos on arq.CondominoID equals con.CondominoID into CON
                         from con in CON.DefaultIfEmpty()
                         where arq.CondominioID == sessaoCorrente.empresaId &&
                         ((arq.Data >= _data1 && arq.Data <= _data2) || arq.IndSempreVisivel == "S") &&
                         (!arq.EdificacaoID.HasValue || _EdificacaoCondomino.Contains(arq.EdificacaoID.ToString()) &&
                          !arq.UnidadeID.HasValue) &&
                         !arq.CondominoID.HasValue &&
                         (_GrupoCondominoID == 0 || arq.GrupoCondominoID == _GrupoCondominoID) &&
                         (_Nome == null || _Nome == "" || arq.Nome.Contains(_Nome))
                         select new ArquivoViewModel()
                {
                    empresaId               = SessaoLocal.empresaId,
                    CondominioID            = SessaoLocal.empresaId,
                    FileID                  = arq.FileID,
                    EdificacaoID            = arq.EdificacaoID,
                    EdificacaoDescricao     = edi.Descricao,
                    UnidadeID               = arq.UnidadeID,
                    CondominoID             = arq.CondominoID,
                    CondominoNome           = con.Nome,
                    GrupoCondominoID        = arq.GrupoCondominoID,
                    GrupoCondominoDescricao = gru.Descricao,
                    Nome             = arq.Nome,
                    Data             = arq.Data,
                    IndSempreVisivel = arq.IndSempreVisivel
                });

                archive = (from arch in archive
                           orderby arch.IndSempreVisivel descending, arch.Data descending
                           select new ArquivoViewModel()
                {
                    empresaId = arch.empresaId,
                    CondominioID = arch.empresaId,
                    FileID = arch.FileID,
                    EdificacaoID = arch.EdificacaoID,
                    EdificacaoDescricao = arch.EdificacaoDescricao,
                    UnidadeID = arch.UnidadeID,
                    CondominoID = arch.CondominoID,
                    CondominoNome = arch.Nome,
                    GrupoCondominoID = arch.GrupoCondominoID,
                    GrupoCondominoDescricao = arch.GrupoCondominoDescricao,
                    Nome = arch.Nome,
                    Data = arch.Data,
                    IndSempreVisivel = arch.IndSempreVisivel,
                    PageSize = pageSize,
                    TotalCount = archive.Count()
                }
                           ).Skip((index ?? 0) * pageSize).Take(pageSize).ToList();
            }
            else
            {
                archive = (from arq in db.Arquivos
                           join edi in db.Edificacaos on arq.EdificacaoID equals edi.EdificacaoID into EDI
                           from edi in EDI.DefaultIfEmpty()
                           join gru in db.GrupoCondominos on arq.GrupoCondominoID equals gru.GrupoCondominoID into GRU
                           from gru in GRU.DefaultIfEmpty()
                           join con in db.Condominos on arq.CondominoID equals con.CondominoID into CON
                           from con in CON.DefaultIfEmpty()
                           where arq.CondominioID == sessaoCorrente.empresaId &&
                           ((arq.Data >= _data1 && arq.Data <= _data2) || arq.IndSempreVisivel == "S") &&
                           (_EdificacaoID == 0 || arq.EdificacaoID == _EdificacaoID) &&
                           (_UnidadeID == 0 || arq.UnidadeID == _UnidadeID) &&
                           (_GrupoCondominoID == 0 || arq.GrupoCondominoID == _GrupoCondominoID) &&
                           (_Nome == null || _Nome == "" || arq.Nome.Contains(_Nome))
                           orderby arq.IndSempreVisivel descending, arq.Data descending
                           select new ArquivoViewModel()
                {
                    empresaId = SessaoLocal.empresaId,
                    CondominioID = SessaoLocal.empresaId,
                    FileID = arq.FileID,
                    EdificacaoID = arq.EdificacaoID,
                    EdificacaoDescricao = edi.Descricao,
                    UnidadeID = arq.UnidadeID,
                    CondominoID = arq.CondominoID,
                    CondominoNome = con.Nome,
                    GrupoCondominoID = arq.GrupoCondominoID,
                    GrupoCondominoDescricao = gru.Descricao,
                    Nome = arq.Nome,
                    Data = arq.Data,
                    IndSempreVisivel = arq.IndSempreVisivel,
                    PageSize = pageSize,
                    TotalCount = ((from arq1 in db.Arquivos
                                   join edi1 in db.Edificacaos on arq1.EdificacaoID equals edi1.EdificacaoID into EDI1
                                   from edi1 in EDI1.DefaultIfEmpty()
                                   join gru1 in db.GrupoCondominos on arq1.GrupoCondominoID equals gru1.GrupoCondominoID into GRU1
                                   from gru1 in GRU1.DefaultIfEmpty()
                                   join con1 in db.Condominos on arq1.CondominoID equals con1.CondominoID into CON1
                                   from con1 in CON1.DefaultIfEmpty()
                                   where arq1.CondominioID == sessaoCorrente.empresaId &&
                                   ((arq1.Data >= _data1 && arq1.Data <= _data2) || arq1.IndSempreVisivel == "S") &&
                                   (_EdificacaoID == 0 || arq1.EdificacaoID == _EdificacaoID) &&
                                   (_UnidadeID == 0 || arq1.UnidadeID == _UnidadeID) &&
                                   (_GrupoCondominoID == 0 || arq1.GrupoCondominoID == _GrupoCondominoID) &&
                                   (_Nome == null || _Nome == "" || arq1.Nome.Contains(_Nome))
                                   orderby arq1.IndSempreVisivel descending, arq1.Data descending
                                   select arq1).Count())
                }).Skip((index ?? 0) * pageSize).Take(pageSize).ToList();
            }

            return(archive);
        }
        public override IEnumerable <ChamadoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            #region parâmetros

            /* 0. Data1
             * 1. Data2
             * 2. ChamadoMotivoID
             * 3. ChamadoStatusID
             * 4. FilaSolicitanteID
             * 5. FilaAtendimentoID
             * 6. EdificacaoID
             * 7. UnidadeID
             */

            DateTime _data1             = (DateTime)param[0];
            DateTime _data2             = (DateTime)param[1];
            int?     _ChamadoMotivoID   = (int?)param[2];
            int?     _ChamadoStatusID   = (int?)param[3];
            int?     _FilaSolicitanteID = (int?)param[4];
            int?     _FilaAtendimentoID = (int?)param[5];
            int?     _EdificacaoID      = (int?)param[6];
            int?     _UnidadeID         = (int?)param[7];
            #endregion

            var x = (from cha in db.Chamados
                     join FilaAtual in db.FilaAtendimentos on cha.FilaAtendimentoID equals FilaAtual.FilaAtendimentoID
                     join con in db.Condominos on cha.CondominoID equals con.CondominoID into CON
                     from con in CON.DefaultIfEmpty()
                     join cre in db.Credenciados on cha.CredenciadoID equals cre.CredenciadoID into CRE
                     from cre in CRE.DefaultIfEmpty()
                     join edi in db.Edificacaos on cha.EdificacaoID equals edi.EdificacaoID into EDI
                     from edi in EDI.DefaultIfEmpty()
                     join uni in db.Unidades on new { CondominioID = cha.CondominioID, EdificacaoID = cha.EdificacaoID.Value, UnidadeID = cha.UnidadeID.Value } equals new { uni.CondominioID, uni.EdificacaoID, uni.UnidadeID } into UNI
                     from uni in UNI.DefaultIfEmpty()
                     join sta in db.ChamadoStatuss on cha.ChamadoStatusID equals sta.ChamadoStatusID
                     join mot in db.ChamadoMotivos on cha.ChamadoMotivoID equals mot.ChamadoMotivoID
                     where cha.CondominioID == SessaoLocal.empresaId &&
                     cha.DataChamado >= _data1 && cha.DataChamado <= _data2 &&
                     sta.CondominioID == SessaoLocal.empresaId &&
                     mot.CondominioID == SessaoLocal.empresaId &&
                     (!_EdificacaoID.HasValue || (cha.EdificacaoID == _EdificacaoID && cha.UnidadeID == _UnidadeID)) &&
                     (!_FilaAtendimentoID.HasValue || cha.FilaAtendimentoID == _FilaAtendimentoID) &&
                     (!_FilaSolicitanteID.HasValue || cha.FilaSolicitanteID == _FilaSolicitanteID) &&
                     (!_ChamadoMotivoID.HasValue || cha.ChamadoMotivoID == _ChamadoMotivoID) &&
                     (!_ChamadoStatusID.HasValue || cha.ChamadoStatusID == _ChamadoStatusID)
                     orderby cha.DataChamado descending
                     select new ChamadoViewModel
            {
                empresaId = SessaoLocal.empresaId,
                ChamadoID = cha.ChamadoID,
                ChamadoMotivoID = cha.ChamadoMotivoID,
                DescricaoChamadoMotivo = mot.Descricao,
                ChamadoStatusID = cha.ChamadoStatusID,
                DescricaoChamadoStatus = sta.Descricao,
                FilaSolicitanteID = cha.FilaSolicitanteID,
                DescricaoFilaSolicitante = (from fil in db.FilaAtendimentos where fil.CondominioID == SessaoLocal.empresaId && fil.FilaAtendimentoID == cha.FilaSolicitanteID select fil.Descricao).FirstOrDefault(),
                FilaAtendimentoID = cha.FilaAtendimentoID,
                DescricaoFilaAtendimento = FilaAtual.Descricao,
                CondominoID = cha.CondominoID,
                CredenciadoID = cha.CredenciadoID,
                NomeCondomino = con != null ? con.Nome : "",
                NomeCredenciado = cre != null ? cre.Nome : "",
                EdificacaoID = cha.EdificacaoID,
                DescricaoEdificacao = edi.Descricao,
                UnidadeID = cha.UnidadeID,
                Codigo = uni.Codigo,
                DataChamado = cha.DataChamado,
                Assunto = cha.Assunto,
                UsuarioID = cha.UsuarioID,
                NomeUsuario = cha.NomeUsuario,
                LoginUsuario = cha.LoginUsuario,
                Prioridade = cha.Prioridade,
                DataUltimaAnotacao = cha.DataUltimaAnotacao,
                DataRedirecionamento = cha.DataRedirecionamento,
                UsuarioFilaID = cha.UsuarioFilaID,
                NomeUsuarioFila = cha.NomeUsuarioFila,
                LoginUsuarioFila = cha.LoginUsuarioFila
            }).ToList();
            return(x);
        }
        public override IEnumerable <ChamadoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            #region parâmetros

            /* 0. Período:
             *      007 última semana
             *      030 últimos 30 dias
             *      060 últimos 60 dias
             *      090 Últimos 90 dias
             *      180 Últimos 180 dias
             *
             * 1. Edificação
             * 2. Unidade
             * 3. Condômino
             * 4. Fila de atendimento
             * 5. Chamado Motivo =>> Null = Todos
             * 6. Chamado Status =>> Null = Todos             *
             */

            #region Param1: Período
            DateTime _data1 = _data1 = Funcoes.Brasilia().Date.AddDays(-(int)param[0]);
            DateTime _data2 = Funcoes.Brasilia().Date;
            #endregion

            int?_EdificacaoID      = (int?)param[1];
            int?_UnidadeID         = (int?)param[2];
            int?_CondominoID       = (int?)param[3];
            int?_FilaAtendimentoID = (int?)param[4];
            int?_ChamadoMotivoID   = (int?)param[5];
            int?_ChamadoStatusID   = (int?)param[6];
            #endregion

            return((from cha in db.Chamados
                    join FilaAtual in db.FilaAtendimentos on cha.FilaAtendimentoID equals FilaAtual.FilaAtendimentoID
                    join con in db.Condominos on cha.CondominoID equals con.CondominoID into CON
                    from con in CON.DefaultIfEmpty()
                    join cre in db.Credenciados on cha.CredenciadoID equals cre.CredenciadoID into CRE
                    from cre in CRE.DefaultIfEmpty()
                    join edi in db.Edificacaos on cha.EdificacaoID equals edi.EdificacaoID into EDI
                    from edi in EDI.DefaultIfEmpty()
                    join uni in db.Unidades on new { CondominioID = cha.CondominioID, EdificacaoID = cha.EdificacaoID.Value, UnidadeID = cha.UnidadeID.Value } equals new { uni.CondominioID, uni.EdificacaoID, uni.UnidadeID } into UNI
                    from uni in UNI.DefaultIfEmpty()
                    join sta in db.ChamadoStatuss on cha.ChamadoStatusID equals sta.ChamadoStatusID
                    join mot in db.ChamadoMotivos on cha.ChamadoMotivoID equals mot.ChamadoMotivoID
                    where cha.CondominioID == SessaoLocal.empresaId &&
                    cha.DataChamado >= _data1 && cha.DataChamado <= _data2 &&
                    sta.CondominioID == SessaoLocal.empresaId &&
                    mot.CondominioID == SessaoLocal.empresaId &&
                    (!_EdificacaoID.HasValue || (cha.EdificacaoID == _EdificacaoID && cha.UnidadeID == _UnidadeID)) &&
                    (!_CondominoID.HasValue || cha.CondominoID == _CondominoID) &&
                    (!_FilaAtendimentoID.HasValue || cha.FilaAtendimentoID == _FilaAtendimentoID) &&
                    (!_ChamadoMotivoID.HasValue || cha.ChamadoMotivoID == _ChamadoMotivoID) &&
                    (!_ChamadoStatusID.HasValue || cha.ChamadoStatusID == _ChamadoStatusID)
                    orderby cha.DataChamado descending
                    select new ChamadoViewModel
            {
                empresaId = SessaoLocal.empresaId,
                ChamadoID = cha.ChamadoID,
                ChamadoMotivoID = cha.ChamadoMotivoID,
                DescricaoChamadoMotivo = mot.Descricao,
                ChamadoStatusID = cha.ChamadoStatusID,
                DescricaoChamadoStatus = sta.Descricao,
                FilaSolicitanteID = cha.FilaSolicitanteID,
                DescricaoFilaSolicitante = (from fil in db.FilaAtendimentos where fil.CondominioID == SessaoLocal.empresaId && fil.FilaAtendimentoID == cha.FilaSolicitanteID select fil.Descricao).FirstOrDefault(),
                FilaAtendimentoID = cha.FilaAtendimentoID,
                DescricaoFilaAtendimento = FilaAtual.Descricao,
                CondominoID = cha.CondominoID,
                CredenciadoID = cha.CredenciadoID,
                NomeCondomino = con != null ? con.Nome : "",
                NomeCredenciado = cre != null ? cre.Nome : "",
                EdificacaoID = cha.EdificacaoID,
                DescricaoEdificacao = edi.Descricao,
                UnidadeID = cha.UnidadeID,
                Codigo = uni.Codigo,
                DataChamado = cha.DataChamado,
                Assunto = cha.Assunto,
                UsuarioID = cha.UsuarioID,
                NomeUsuario = cha.NomeUsuario,
                LoginUsuario = cha.LoginUsuario,
                Prioridade = cha.Prioridade,
                DataUltimaAnotacao = cha.DataUltimaAnotacao,
                DataRedirecionamento = cha.DataRedirecionamento,
                UsuarioFilaID = cha.UsuarioFilaID,
                NomeUsuarioFila = cha.NomeUsuarioFila,
                LoginUsuarioFila = cha.LoginUsuarioFila
            }).ToList());
        }
        public override IEnumerable <ChamadoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            int _FilaCondominoID = DWMSessaoLocal.FilaCondominoID(sessaoCorrente, this.db);

            return((from cha in db.Chamados
                    join FilaAtual in db.FilaAtendimentos on cha.FilaAtendimentoID equals FilaAtual.FilaAtendimentoID
                    join con in db.Condominos on cha.CondominoID equals con.CondominoID into CON
                    from con in CON.DefaultIfEmpty()
                    join cre in db.Credenciados on cha.CredenciadoID equals cre.CredenciadoID into CRE
                    from cre in CRE.DefaultIfEmpty()
                    join edi in db.Edificacaos on cha.EdificacaoID equals edi.EdificacaoID into EDI
                    from edi in EDI.DefaultIfEmpty()
                    join uni in db.Unidades on new { CondominioID = cha.CondominioID, EdificacaoID = cha.EdificacaoID.Value, UnidadeID = cha.UnidadeID.Value } equals new { uni.CondominioID, uni.EdificacaoID, uni.UnidadeID } into UNI
                    from uni in UNI.DefaultIfEmpty()
                    join sta in db.ChamadoStatuss on cha.ChamadoStatusID equals sta.ChamadoStatusID
                    join mot in db.ChamadoMotivos on cha.ChamadoMotivoID equals mot.ChamadoMotivoID
                    where  cha.CondominioID == SessaoLocal.empresaId &&
                    sta.CondominioID == SessaoLocal.empresaId &&
                    mot.CondominioID == SessaoLocal.empresaId &&
                    ((cha.ChamadoStatusID == 3 && (SessaoLocal.CondominoID > 0 || SessaoLocal.CredenciadoID > 0)) ||
                     cha.ChamadoStatusID != 3) &&       // 3-Encerrado
                    (cha.UsuarioID == SessaoLocal.usuarioId || cha.UsuarioFilaID == SessaoLocal.usuarioId ||
                     (cha.CondominoID.HasValue && cha.CondominoID == SessaoLocal.CondominoID && SessaoLocal.CondominoID > 0) ||
                     (from usu in db.FilaAtendimentoUsuarios
                      where usu.FilaAtendimentoID == cha.FilaAtendimentoID
                      select usu.UsuarioID).Contains(SessaoLocal.usuarioId))
                    orderby cha.DataChamado descending
                    select new ChamadoViewModel
            {
                empresaId = SessaoLocal.empresaId,
                ChamadoID = cha.ChamadoID,
                ChamadoMotivoID = cha.ChamadoMotivoID,
                DescricaoChamadoMotivo = mot.Descricao,
                ChamadoStatusID = cha.ChamadoStatusID,
                DescricaoChamadoStatus = sta.Descricao,
                FilaSolicitanteID = cha.FilaSolicitanteID,
                DescricaoFilaSolicitante = (from fil in db.FilaAtendimentos where fil.CondominioID == SessaoLocal.empresaId && fil.FilaAtendimentoID == cha.FilaSolicitanteID select fil.Descricao).FirstOrDefault(),
                FilaAtendimentoID = cha.FilaAtendimentoID,
                DescricaoFilaAtendimento = FilaAtual.Descricao,
                FilaCondominoID = _FilaCondominoID,
                CondominoID = cha.CondominoID,
                CredenciadoID = cha.CredenciadoID,
                NomeCondomino = con != null ? con.Nome : "",
                NomeCredenciado = cre != null ? cre.Nome : "",
                EdificacaoID = cha.EdificacaoID,
                DescricaoEdificacao = edi.Descricao,
                UnidadeID = cha.UnidadeID,
                Codigo = uni.Codigo,
                DataChamado = cha.DataChamado,
                Assunto = cha.Assunto,
                UsuarioID = cha.UsuarioID,
                NomeUsuario = cha.NomeUsuario,
                LoginUsuario = cha.LoginUsuario,
                Prioridade = cha.Prioridade,
                DataUltimaAnotacao = cha.DataUltimaAnotacao,
                DataRedirecionamento = cha.DataRedirecionamento,
                UsuarioFilaID = cha.UsuarioFilaID,
                NomeUsuarioFila = cha.NomeUsuarioFila,
                LoginUsuarioFila = cha.LoginUsuarioFila
            }).ToList());
        }
Exemple #6
0
        public override IEnumerable <InformativoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            DateTime data1            = param.Count() > 0 && param[0] != null ? (DateTime)param[0] : new DateTime(1980, 1, 1);
            DateTime data2            = param.Count() > 1 && param[1] != null ? (DateTime)param[1] : Funcoes.Brasilia().Date.AddDays(30);
            string   EdificacaoID     = "";
            string   GrupoCondominoID = "";
            string   IsHome           = "N";

            if (param.Count() > 2)
            {
                IsHome = "S";
                if (param[2] != null)
                {
                    int[] GrupoCondomino = (int[])param[2];
                    for (int i = 0; i <= GrupoCondomino.Count() - 1; i++)
                    {
                        GrupoCondominoID += GrupoCondomino[i].ToString() + ";";
                    }
                }

                if (param[3] != null)
                {
                    IEnumerable <Unidade> Unidades = (IEnumerable <Unidade>)param[3];
                    foreach (var unidade in Unidades)
                    {
                        EdificacaoID += unidade.EdificacaoID.ToString().Trim() + ";";
                    }
                }
            }

            return((from info in db.Informativos
                    join gru in db.GrupoCondominos on info.GrupoCondominoID equals gru.GrupoCondominoID into GRU
                    from gru in GRU.DefaultIfEmpty()
                    join edi in db.Edificacaos on info.EdificacaoID equals edi.EdificacaoID into EDI
                    from edi in EDI.DefaultIfEmpty()
                    where info.DataPublicacao <= SqlFunctions.GetDate() &&
                    info.CondominioID == sessaoCorrente.empresaId &&
                    (IsHome == "N" || info.DataExpiracao >= SqlFunctions.GetDate()) &&
                    (GrupoCondominoID == "" || !info.GrupoCondominoID.HasValue || (info.GrupoCondominoID.HasValue && GrupoCondominoID.Contains(SqlFunctions.StringConvert((double)info.GrupoCondominoID).Trim()))) &&
                    (EdificacaoID == "" || !info.EdificacaoID.HasValue || (info.EdificacaoID.HasValue && EdificacaoID.Contains(SqlFunctions.StringConvert((double)info.EdificacaoID).Trim())))
                    orderby info.DataPublicacao descending
                    select new InformativoViewModel
            {
                empresaId = sessaoCorrente.empresaId,
                InformativoID = info.InformativoID,
                CondominioID = info.CondominioID,
                EdificacaoID = info.EdificacaoID,
                descricao_edificacao = edi.Descricao,
                GrupoCondominoID = gru.GrupoCondominoID,
                descricao_GrupoCondomino = gru.Descricao,
                DataExpiracao = info.DataExpiracao,
                DataInformativo = info.DataInformativo,
                DataPublicacao = info.DataPublicacao,
                Cabecalho = info.Cabecalho,
                Resumo = info.Resumo,
                MensagemDetalhada = info.MensagemDetalhada,
                InformativoAnuncio = info.InformativoAnuncio,
                Comentarios = (from com in db.InformativoComentarios
                               join con in db.Condominos on com.CondominoID equals con.CondominoID
                               join cu in db.CondominoUnidades on new { con.CondominioID, con.CondominoID } equals new { cu.CondominioID, cu.CondominoID }
                               join ed in db.Edificacaos on cu.EdificacaoID equals ed.EdificacaoID
                               where com.InformativoID == info.InformativoID &&
                               cu.DataFim == null
                               select new InformativoComentarioViewModel()
                {
                    InformativoID = info.InformativoID,
                    DataComentario = com.DataComentario,
                    CondominoID = com.CondominoID,
                    Nome = con.Nome,
                    EdificacaoID = ed.EdificacaoID,
                    DescricaoEdificacao = ed.Descricao,
                    UnidadeID = cu.UnidadeID,
                    Descricao = com.Descricao,
                    DataDesativacao = com.DataDesativacao,
                    Motivo = com.Motivo
                }).ToList(),
                PageSize = pageSize,
                TotalCount = (from info1 in db.Informativos
                              join gru1 in db.GrupoCondominos on info1.GrupoCondominoID equals gru1.GrupoCondominoID into GRU1
                              from gru1 in GRU1.DefaultIfEmpty()
                              join edi1 in db.Edificacaos on info1.EdificacaoID equals edi1.EdificacaoID into EDI1
                              from edi1 in EDI1.DefaultIfEmpty()
                              where info.DataPublicacao <= SqlFunctions.GetDate() &&
                              info1.CondominioID == sessaoCorrente.empresaId &&
                              (IsHome == "N" || info1.DataExpiracao >= SqlFunctions.GetDate()) &&
                              (GrupoCondominoID == "" || !info1.GrupoCondominoID.HasValue || (info1.GrupoCondominoID.HasValue && GrupoCondominoID.Contains(SqlFunctions.StringConvert((double)info1.GrupoCondominoID).Trim()))) &&
                              (EdificacaoID == "" || !info1.EdificacaoID.HasValue || (info1.EdificacaoID.HasValue && EdificacaoID.Contains(SqlFunctions.StringConvert((double)info1.EdificacaoID).Trim())))
                              orderby info1.DataPublicacao descending
                              select info1).Count()
            }).Skip((index ?? 0) * pageSize).Take(pageSize).ToList());
        }