public async Task <IEnumerable <EducatorSubjectOverviewResponse> > Handle(GetEducatorSubjectOverviewQuery query) { var workResults = await _repository.GetWorkResults(); var linqQuery = from workResult in workResults where workResult.Subject == query.Subject && workResult.SubmitDateTime >= query.StartDateTimeUtc && workResult.SubmitDateTime <= query.EndDateTimeUtc group workResult by new { workResult.Subject, workResult.Domain, workResult.LearningObjective, workResult.UserId } into grp select new EducatorSubjectOverviewResponse { Domain = grp.Key.Domain, LearningObjective = grp.Key.LearningObjective, UserId = grp.Key.UserId, AssessedSkillLevelChange = grp.Select(x => (decimal)x.Progress).Sum() }; var response = linqQuery.ToList(); return(response); }
public async Task <IEnumerable <SubjectStudentOverviewDto> > Get(string subject, DateTime startDateTimeUtc, DateTime endDateTimeUtc) { //TODO: Date range validation var query = new GetEducatorSubjectOverviewQuery { Subject = subject, StartDateTimeUtc = startDateTimeUtc, EndDateTimeUtc = endDateTimeUtc }; var queryResponse = await _queryHandler.Handle(query); var response = queryResponse.Select(_mapper.Map).ToList(); return(response); }