public Relatorio GetRelatorio(DateTime? dataInicial, DateTime? dataFinal, int? idDoutor) { var relatorio = new Relatorio(); var relatorioPaginas = this.Produtos.SelectMany(p => p.ProdutoVas).SelectMany(va => va.ProdutoVaSlides).SelectMany(s => s.RelatorioPaginas).Where(rp => rp.DoutorCadastro != null); if (dataInicial != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio >= dataInicial); } if (dataFinal != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio < dataFinal.Value.AddDays(1)); } if (idDoutor != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.IdDoutorCadastro == idDoutor); } relatorio.QtdeVisualizacoes = relatorioPaginas.Count(); relatorio.Segundos = relatorioPaginas.Sum(r => r.Segundos); //tira a mediana var metade1 = relatorioPaginas.OrderBy(rp => rp.Segundos).Take(relatorioPaginas.Count() / 2).Max(rp => rp.Segundos); var metade2 = relatorioPaginas.OrderByDescending(rp => rp.Segundos).Take(relatorioPaginas.Count() / 2).Min(rp => rp.Segundos); relatorio.Mediana = (metade1 + metade2) / 2; return relatorio; }
public Relatorio GetRelatorio(DateTime? dataInicial, DateTime? dataFinal) { var relatorio = new Relatorio(); IEnumerable<RelatorioPagina> relatorioPaginas = this.RelatorioPaginas; if (dataInicial != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio >= dataInicial); } if (dataFinal != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio < dataFinal.Value.AddDays(1)); } relatorio.QtdeVisualizacoes = relatorioPaginas.Count(); relatorio.Segundos = relatorioPaginas.Sum(r => r.Segundos); return relatorio; }
public Relatorio GetRelatorio(DateTime? dataInicial, DateTime? dataFinal, int? idDoutor) { var relatorio = new Relatorio(); var relatorioPaginas = this.ProdutoVaSlides.SelectMany(s => s.RelatorioPaginas).Where(rp => rp.DoutorCadastro != null); if (dataInicial != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio >= dataInicial); } if (dataFinal != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.DataInicio < dataFinal.Value.AddDays(1)); } if (idDoutor != null) { relatorioPaginas = relatorioPaginas.Where(rp => rp.IdDoutorCadastro == idDoutor); } relatorio.QtdeVisualizacoes = relatorioPaginas.Count(); relatorio.Segundos = relatorioPaginas.Sum(r => r.Segundos); return relatorio; }