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); }
public IList <ContribuicaoDTO> GetContribuicoes(ContribuicaoFiltroDTO filtro) { return(new ContribuicaoBusiness(new ContribuicaoEntity(), new ContribuicaoArquivoEntity()).GetContribuicoes(filtro)); }
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()); } } }