Exemple #1
0
        public IList <ContribuicaoDTO> GetContribuicoes(ContribuicaoFiltroDTO e)
        {
            var contribuicoes = _rep.GetContribuicoes(e);
            var dataAtual     = DateTime.Now;

            using (MiniProfiler.Current.Step("Setando tempo de publicação da CA e Buscando arquivos de cada uma"))
            {
                foreach (var cont in contribuicoes)
                {
                    cont.Data     = Utilidades.GetTempoDecorrido(cont.DataCriacao);
                    cont.Arquivos = _repArquivo.ListarArquivosContribuicao(cont.ContribuicaoId);
                }
            }
            return(contribuicoes);
        }
Exemple #2
0
 public IList <ContribuicaoDTO> GetContribuicoes(ContribuicaoFiltroDTO filtro)
 {
     return(new ContribuicaoBusiness(new ContribuicaoEntity(), new ContribuicaoArquivoEntity()).GetContribuicoes(filtro));
 }
Exemple #3
0
        public ResultViewModel <IList <ContribuicaoViewModel> > GetContribuicoesViewModel(ContribuicaoFiltroDTO filtro)
        {
            SetStateHeadersFromRequest();
            if (Request == null)
            {
                throw new NullReferenceException("Request null");
            }
            var result = Execute(() =>
            {
                var business      = new ContribuicaoBusiness(new ContribuicaoEntity(), new ContribuicaoArquivoEntity());
                var contribuicoes = business.GetContribuicoes(filtro);
                return(contribuicoes);
            }, true);

            return(GetResultViewModel <IList <ContribuicaoViewModel>, IList <ContribuicaoDTO> >(result));
        }
        private IQueryable <ContribuicaoDTO> AplicarFiltros(IQueryable <ContribuicaoDTO> list, ContribuicaoFiltroDTO filtro)
        {
            if (filtro.ByAudio || filtro.ByImage || filtro.ByText || filtro.ByVideo)
            {
                list = list.Where(x =>
                                  (x.IsAudio == true && filtro.ByAudio) ||
                                  (x.IsImagem == true && filtro.ByImage) ||
                                  (!string.IsNullOrEmpty(x.Descricao) && filtro.ByText) ||
                                  (x.IsVideo == true && filtro.ByVideo)
                                  );
            }

            if (filtro.JustMyAid)
            {
                list = list.Where(x => x.Dono == true);
            }

            if (filtro.ApostilaId > 0)
            {
                list = list.Where(x => x.ApostilaId == filtro.ApostilaId);
            }

            if (filtro.ContribuicaoId > 0)
            {
                list = list.Where(x => x.ContribuicaoId == filtro.ContribuicaoId);
            }

            if (filtro.IsPendente)
            {
                list = list.Where(x => x.BitAprovacaoMedgrupo == false);
            }

            if (!string.IsNullOrEmpty(filtro.CodigoMarcacao))
            {
                list = list.Where(x => x.CodigoMarcacao == filtro.CodigoMarcacao);
            }

            if (filtro.IsAprovado)
            {
                list = list.Where(x => x.BitAprovacaoMedgrupo == true);
            }

            if (filtro.TiposInteracoes != null && filtro.TiposInteracoes.Count() > 0)
            {
                list = list.Where(x => x.Interacoes.Any(y => filtro.TiposInteracoes.Any(z => z == y)));
            }

            if (filtro.IsPublicadasPorMim)
            {
                list = list.Where(x => x.MedGrupoID.Value == filtro.ClientId);
            }

            if (filtro.IsProfessor)
            {
                if (filtro.IsArquivada || filtro.IsAprovarMaisTarde || filtro.IsEncaminhado)
                {
                    if (filtro.IdsProfessores != null && filtro.IdsProfessores.Count() > 0)
                    {
                        list = list.Where(x =>
                                          (x.Arquivada == filtro.IsArquivada && filtro.IsArquivada) ||
                                          (x.AprovarMaisTarde == filtro.IsAprovarMaisTarde && filtro.IsAprovarMaisTarde) ||
                                          ((x.ProfessoresEncaminhados.Any(y => filtro.IdsProfessores.Any(z => z == y))) && filtro.IsEncaminhado)
                                          );
                    }
                    else
                    {
                        list = list.Where(x =>
                                          (x.Arquivada == filtro.IsArquivada && filtro.IsArquivada) ||
                                          (x.AprovarMaisTarde == filtro.IsAprovarMaisTarde && filtro.IsAprovarMaisTarde) ||
                                          (x.Encaminhada == filtro.IsEncaminhado && filtro.IsEncaminhado)
                                          );
                    }
                }
                else
                {
                    list = list.Where(x =>
                                      x.Arquivada == false &&
                                      x.AprovarMaisTarde == false &&
                                      x.Encaminhada == false
                                      );
                }
            }

            return(list);
        }
        public IList <ContribuicaoDTO> GetContribuicoes(ContribuicaoFiltroDTO filtro)
        {
            using (MiniProfiler.Current.Step("GET - Contribuições paginadas"))
            {
                using (var ctx = new DesenvContext())
                {
                    var list = (from contribuicao in ctx.tblContribuicao
                                join person in ctx.tblPersons on contribuicao.intClientID equals person.intContactID
                                join client in ctx.tblClients on person.intContactID equals client.intClientID
                                where contribuicao.bitAtiva == true && (contribuicao.intClientID == filtro.ClientId || contribuicao.intOpcaoPrivacidade == (int)TipoOpcaoPrivacidade.Publica)
                                let IsVideo = ctx.tblContribuicaoArquivo.Any(arquivo => arquivo.intContribuicaoID == contribuicao.intContribuicaoID && arquivo.intTipoArquivo.Value == (int)EnumTipoArquivoContribuicao.Video)
                                              let IsAudio = ctx.tblContribuicaoArquivo.Any(arquivo => arquivo.intContribuicaoID == contribuicao.intContribuicaoID && arquivo.intTipoArquivo.Value == (int)EnumTipoArquivoContribuicao.Audio)
                                                            let IsImagem = ctx.tblContribuicaoArquivo.Any(arquivo => arquivo.intContribuicaoID == contribuicao.intContribuicaoID && arquivo.intTipoArquivo.Value == (int)EnumTipoArquivoContribuicao.Imagem)
                                                                           select new ContribuicaoDTO
                    {
                        ContribuicaoId = contribuicao.intContribuicaoID,
                        Descricao = contribuicao.txtDescricao,
                        ClientId = contribuicao.intClientID.Value,
                        MedGrupoID = contribuicao.intMedGrupoID.Value,
                        DataCriacao = contribuicao.dteDataCriacao.Value,
                        Editada = contribuicao.bitEditado == true,
                        NomeAluno = person.txtName,
                        Estado = contribuicao.txtEstado,
                        SiglaAluno = person.txtName.Substring(0, 1),
                        Dono = (contribuicao.intClientID == filtro.ClientId),
                        ApostilaId = contribuicao.intApostilaID,
                        CodigoMarcacao = contribuicao.txtCodigoMarcacao,
                        Origem = contribuicao.txtOrigem,
                        BitAprovacaoMedgrupo = contribuicao.bitAprovacaoMedgrupo,
                        OrigemSubnivel = contribuicao.txtOrigemSubnivel,
                        TrechoSelecionado = contribuicao.txtTrechoSelecionado,
                        IsVideo = IsVideo,
                        IsAudio = IsAudio,
                        IsImagem = IsImagem,
                        Arquivada = ctx.tblContribuicoes_Arquivadas.Any(arquivada => arquivada.intContribuicaoID == contribuicao.intContribuicaoID && arquivada.intClientID == filtro.ClientId && !arquivada.bitAprovarMaisTarde),
                        AprovarMaisTarde = ctx.tblContribuicoes_Arquivadas.Any(arquivada => arquivada.intContribuicaoID == contribuicao.intContribuicaoID && arquivada.intClientID == filtro.ClientId && arquivada.bitAprovarMaisTarde),
                        Encaminhada = ctx.tblContribuicao_Encaminhadas.Any(encaminhada => encaminhada.intContribuicaoID == contribuicao.intContribuicaoID && encaminhada.intClientID == filtro.ClientId),
                        ProfessoresEncaminhados = ctx.tblContribuicao_Encaminhadas.Where(encaminhada => encaminhada.intClientID == filtro.ClientId && contribuicao.intContribuicaoID == encaminhada.intContribuicaoID).Select(y => y.intEmployeeID),
                        Interacoes = ctx.tblContribuicoes_Interacao.Where(x => x.intClientID == filtro.ClientId && x.intContribuicaoID == contribuicao.intContribuicaoID).Select(y => y.intContribuicaoTipo),
                        TipoCategoria = contribuicao.intTipoCategoria,
                        TipoContribuicao = contribuicao.intTipoContribuicao,
                        NumeroCapitulo = contribuicao.intNumCapitulo,
                        OpcaoPrivacidade = (TipoOpcaoPrivacidade)contribuicao.intOpcaoPrivacidade
                    });

                    list = AplicarFiltros(list, filtro);

                    if (filtro.ApostilaId > 0)
                    {
                        list = list.OrderBy(x => x.TipoCategoria).ThenBy(x => x.NumeroCapitulo).ThenByDescending(x => x.DataCriacao);
                    }
                    else
                    {
                        list = list.OrderByDescending(x => x.DataCriacao);
                    }

                    if (filtro.Page > 0)
                    {
                        list = list.Skip((filtro.Page - 1) * PageSize).Take(PageSize);
                    }

                    return(list.ToList());
                }
            }
        }