Пример #1
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);
        }
Пример #2
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());
        }