async Task<List<ContentData>> IMaterialManager.GetContentDetailsWithPaging(int PageNo, int PazeSize) { var UserRole = _authenticationManager.GetAuthenticatedUser().Result.RoleId; var UserId = _authenticationManager.GetAuthenticatedUser().Result.UserId; List<ContentData> ContentDtls = new List<ContentData>(); try { if (UserRole == 3) { var MaxVersionData = from ContentDetails in _dbContext.ContentDetails join VersionDetails in _dbContext.VersionDetails on ContentDetails.Id equals VersionDetails.ContentId join MstStage in _dbContext.MstStage on ContentDetails.Status equals MstStage.Id where ContentDetails.FacultyId == UserId && ContentDetails.Status == 0 select new { VersionDetails.ContentId, ContentDetails.Id, ContentDetails.DeptId, ContentDetails.DeptName, ContentDetails.CourseId, ContentDetails.CourseName, ContentDetails.Semester, ContentDetails.PaperId, ContentDetails.PaperName, ContentDetails.ContentTypeId, ContentDetails.ContenType, ContentDetails.FacultyId, ContentDetails.FacultyName, ContentDetails.Topic, ContentDetails.LanguageId, ContentDetails.LanguageName, MstStage.Mode, VersionDetails.VersionId, VersionDetails.VersionName, VersionDetails.VersionNote, ContentDetails.CreatedBy, ContentDetails.CreatedOn, ContentDetails.ModifiedBy, ContentDetails.ModifiedOn }; var ContentDatas = from ConDtls in MaxVersionData where (from ContentDetails in _dbContext.ContentDetails join VersionDetails in _dbContext.VersionDetails on ContentDetails.Id equals VersionDetails.ContentId where ContentDetails.FacultyId == UserId && ContentDetails.Status == 0 group VersionDetails by VersionDetails.ContentId into g select g.Max(x => x.VersionId)).Contains(ConDtls.VersionId) select new { ContentId = ConDtls.ContentId, Id = ConDtls.Id, DeptId = ConDtls.DeptId, DeptName = ConDtls.DeptName, CourseId = ConDtls.CourseId, CourseName = ConDtls.CourseName, Semester = ConDtls.Semester, PaperId = ConDtls.PaperId, PaperName = ConDtls.PaperName, ContentTypeId = ConDtls.ContentTypeId, ContenType = ConDtls.ContenType, FacultyId = ConDtls.FacultyId, FacultyName = ConDtls.FacultyName, Topic = ConDtls.Topic, LanguageId = ConDtls.LanguageId, LanguageName = ConDtls.LanguageName, StatusName = ConDtls.Mode, VersionId = ConDtls.VersionId, VersionName = ConDtls.VersionName, VersionNote = ConDtls.VersionNote, CreatedBy = ConDtls.CreatedBy, CreatedOn = ConDtls.CreatedOn, ModifiedBy = ConDtls.ModifiedBy, ModifiedOn = ConDtls.ModifiedOn }; ContentDtls = (from ContentInfo in ContentDatas select new { Id = ContentInfo.Id, DeptId = (int)ContentInfo.DeptId, DeptName = ContentInfo.DeptName, CourseId = (int)ContentInfo.CourseId, CourseName = ContentInfo.CourseName, Semester = (int)ContentInfo.Semester, PaperId = (int)ContentInfo.PaperId, PaperName = ContentInfo.PaperName, ContentTypeId = (int)ContentInfo.ContentTypeId, ContenType = ContentInfo.ContenType, FacultyId = (int)ContentInfo.FacultyId, FacultyName = ContentInfo.FacultyName, Topic = ContentInfo.Topic, LanguageId = ContentInfo.LanguageId, LanguageName = ContentInfo.LanguageName, StatusName = ContentInfo.StatusName, VersionId = ContentInfo.VersionId, VersionName = ContentInfo.VersionName, VersionNote = ContentInfo.VersionNote, CreatedBy = (int)ContentInfo.CreatedBy, CreatedOn = ApplicationData.AppDateToString(ContentInfo.CreatedOn) ?? String.Empty, ModifiedBy = (int)ContentInfo.ModifiedBy, ModifiedOn = ApplicationData.AppDateToString(ContentInfo.ModifiedOn) ?? String.Empty }).AsEnumerable().Select((k, index) => new ContentData() { SrlNo = index + 1, ContentId = k.Id, DeptId = k.DeptId, DeptName = k.DeptName, CourseId = (int)k.CourseId, CourseName = k.CourseName, Semester = (int)k.Semester, PaperId = (int)k.PaperId, PaperName = k.PaperName, ContentTypeId = (int)k.ContentTypeId, ContenType = k.ContenType, FacultyId = (int)k.FacultyId, FacultyName = k.FacultyName, Topic = k.Topic, LanguageId = (int)k.LanguageId, LanguageName = k.LanguageName, StatusName = k.StatusName, VersionId = k.VersionId, VersionName = k.VersionName, VersionNote = k.VersionNote, CreatedBy = k.CreatedBy, CreatedOn = k.CreatedOn, ModifiedBy = k.ModifiedBy, ModifiedOn = k.ModifiedOn }).ToList(); } } catch (Exception ex) { } return await Task.Run(() => { return ContentDtls; }); }