Exemple #1
0
        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));
        }