public async Task <ActionResult <PageRS <AnalysisTestDTO> > > GetTestsAsync([FromBody] SearchPaginatedRQ body) { var entities = _analysisRepo.GetPaginated(body, out int pageCnt, out int pageNo); #region Get_CreatedBy_Users_Details var createdByIds = entities.Select(e => e.CreatedBy); var createdByDetails = await _msGraph.GetStudentsByIds(createdByIds); #endregion #region Get_Student_Users_Details var studentIds = entities.Select(e => e.STS_StudentId); var studentDetails = await _msGraph.GetStudentsByIds(studentIds); #endregion #region Map_Result var res = entities.Select(entity => { var createdByDetail = createdByDetails.Single(ud => ud.MicrosoftId == entity.CreatedBy); var studentDetail = studentDetails.Single(ud => ud.MicrosoftId == entity.STS_StudentId); return(new AnalysisTestDTO(entity, createdByDetail, studentDetail)); }); #endregion return(new PageRS <AnalysisTestDTO>(res, pageCnt, pageNo)); }