public IQueryable<StudentSchoolMetricInstance> GetStudentsWithMetrics(PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { var studentThatWillBeShown = ApplyQueryOptionsAndSecurity(schoolMetricStudentListRepository.GetAll(), providerQueryOptions); var query = from studentMetrics in studentSchoolMetricInstanceRepository.GetAll() join esi in studentThatWillBeShown on new { studentMetrics.StudentUSI, studentMetrics.SchoolId, studentMetrics.SchoolYear } equals new { esi.StudentUSI, esi.SchoolId, esi.SchoolYear } select studentMetrics; return FilterByMetrics(query, providerQueryOptions); }
protected virtual IQueryable<SchoolMetricInstanceStudentList> ApplyQueryOptionsAndSecurity(IQueryable<SchoolMetricInstanceStudentList> query, PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { query = ApplySecurityFilter(query); query = ApplyLocalEducationAgencyIdAndSchoolIdFilter(query, providerQueryOptions); query = ApplySchoolMetricStudentListMetricIdFilter(query, providerQueryOptions); query = ApplyStudentIdsFilter(query, providerQueryOptions); return query; }
public IQueryable<SchoolMetricInstanceStudentList> GetStudentList(PriorYearStudentMetricsProviderQueryOptions providerQueryOptions, MetadataColumn sortColumn = null, string sortDirection = "") { var query = ApplyQueryOptionsAndSecurity(schoolMetricStudentListRepository.GetAll(), providerQueryOptions); return query; }
protected virtual IQueryable<StudentSchoolMetricInstance> FilterByMetrics(IQueryable<StudentSchoolMetricInstance> query, PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { if (providerQueryOptions.MetricVariantIds != null) { var enumerableMetricVariantIds = providerQueryOptions.MetricVariantIds as int[] ?? providerQueryOptions.MetricVariantIds.ToArray(); var groupingIds = stateAssessmentMetricIdGroupingProvider.GetMetricVariantGroupIds(); enumerableMetricVariantIds = enumerableMetricVariantIds.Concat(groupingIds).ToArray(); if (enumerableMetricVariantIds.Any()) query = query.Where(metrics => enumerableMetricVariantIds.Contains(metrics.MetricId)); } return query; }
protected virtual IQueryable<SchoolMetricInstanceStudentList> ApplyStudentIdsFilter(IQueryable<SchoolMetricInstanceStudentList> query, PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { if (providerQueryOptions.StudentIds == null) return query; var enumerableStudentIds = providerQueryOptions.StudentIds as long[] ?? providerQueryOptions.StudentIds.ToArray(); if (!enumerableStudentIds.Any()) return query; return query.Where(metrics => enumerableStudentIds.Contains(metrics.StudentUSI)); }
protected virtual IQueryable<SchoolMetricInstanceStudentList> ApplySchoolMetricStudentListMetricIdFilter(IQueryable<SchoolMetricInstanceStudentList> query, PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { if (!providerQueryOptions.SchoolMetricStudentListMetricId.HasValue) return query; return query.Where(student => student.SchoolYear == providerQueryOptions.Year && student.MetricId == providerQueryOptions.SchoolMetricStudentListMetricId); }
protected virtual IQueryable<SchoolMetricInstanceStudentList> ApplyLocalEducationAgencyIdAndSchoolIdFilter(IQueryable<SchoolMetricInstanceStudentList> query, PriorYearStudentMetricsProviderQueryOptions providerQueryOptions) { if (providerQueryOptions.LocalEducationAgencyId.HasValue) { return query.Where(student => student.SchoolId.ToString().StartsWith(providerQueryOptions.LocalEducationAgencyId.Value.ToString())); } return query.Where(student => student.SchoolId == providerQueryOptions.SchoolId); }