public static List <NoticeModel> GetNotices(NoticeFilterModel model, ref int recordsCount) { using (var context = new NoticeBoardEntities()) { List <NoticeModel> notices = context.Notices.Where(x => x.IsActive == ActiveStatus.Active).Join(context.Users, n => n.UserId, u => u.UserId, (n, u) => new NoticeModel { noticeId = n.NoticeId, userId = n.UserId, title = n.Title, body = n.Body, IsActive = n.IsActive, lastUpdatedOn = n.LastUpdatedOn, postedOn = n.PostedOn, userData = new UserModel() { email = u.Email, isActive = u.IsActive, userName = u.UserName, userId = u.UserId }, }).ToList(); recordsCount = notices.Count; switch (model.sortBy) { case "postedBy": notices = notices.OrderBy(x => x.userData.email).ToList(); break; case "title": notices = notices.OrderBy(x => x.title).ToList(); break; default: notices = notices.OrderByDescending(x => x.postedOn).ToList(); break; } return(AddPaginationToNotices(notices, model)); } }
public JsonResult GetNotices(NoticeFilterModel model) { try { int recordsCount = 0; var result = NoticeBusiness.GetNotices(model, ref recordsCount); var pages = CommonBusiness.GetPages(recordsCount); var data = new ApiRespnoseWrapper() { status = ApiRespnoseStatus.Success, results = new ArrayList() { result, pages } }; return(new JsonResult() { Data = data }); } catch (Exception ex) { return(CommonBusiness.GetErrorResponse(ex.Message)); } }
public static List <NoticeModel> AddPaginationToNotices(List <NoticeModel> notices, NoticeFilterModel model) { int totalPages = CommonBusiness.GetPages(notices.Count); int recordsPerPage = 4, totalRecords = notices.Count; if (model.pageNo < 0 || model.pageNo > totalPages) { model.pageNo = 0; } int startIndex = model.pageNo * recordsPerPage; List <NoticeModel> filteredNotices = new List <NoticeModel>(); for (int i = startIndex; i < startIndex + recordsPerPage; i++) { if (i < totalRecords) { filteredNotices.Add(notices[i]); } } return(filteredNotices); }