public async Task <IActionResult> GetAllElanatsPaged(int pageNum = 1, int pageSize = 10, string expression = "", string sortBy = "", string sortMethod = "asc") { var paggingData = new paggingData() { PageSize = pageSize, PageNum = pageNum, SortBy = sortBy, Expression = expression, SortMethod = sortMethod }; var elanats = await _elanatsService.GetAllElanatsPaged(paggingData); var list = new List <ElanatViewModel>(); if (!elanats.Any()) { return(NoContent()); } foreach (var item in elanats) { list.Add(new ElanatViewModel() { ElanatId = item.ElanatId, messageText = item.MessageText, messageTopic = item.MessageTopic, dateFrom = item.DateFrom, dateTo = item.DateTo }); } var pagedList = new PagedList <ElanatViewModel>() { list = list, PageSize = paggingData.PageSize, Count = paggingData.Count, Expression = paggingData.Expression, SortBy = paggingData.SortBy, PageNum = paggingData.PageNum, SortMethod = paggingData.SortMethod, }; return(Ok(pagedList)); }
/// <summary> /// paging /// </summary> public static IQueryable <T> PagedResult <T>(IQueryable <T> query, paggingData paggingData) { if (paggingData.PageSize <= 0) { paggingData.PageSize = 20; } paggingData.Count = query.Count(); if (paggingData.Count <= paggingData.PageSize || paggingData.PageNum <= 0) { paggingData.PageNum = 1; } int excludedRows = (paggingData.PageNum - 1) * paggingData.PageSize; return(query.Skip(excludedRows).Take(paggingData.PageSize)); }
public async Task <ICollection <Elanat> > GetAllElanatsPaged(paggingData paggingData) { if (paggingData.Expression.IsNullOrEmpty()) { paggingData.Expression = ""; } if (paggingData.SortBy.IsNullOrEmpty()) { paggingData.SortBy = "ElanatId"; } var list = _entity.Where(c => c.MessageTopic.Contains(paggingData.Expression) || c.MessageText.Contains(paggingData.Expression)) .OrderBy(c => c.ElanatId); if (paggingData.SortMethod == "asc") { switch (paggingData.SortBy) { case "messageTopic": list = list.OrderBy(c => c.MessageTopic); break; case "messageText": list = list.OrderBy(c => c.MessageText); break; case "dateFrom": list = list.OrderBy(c => c.DateFrom); break; case "dateTo": list = list.OrderBy(c => c.DateTo); break; //case "DesLevel": // list = list.OrderBy(c => c.DesLevel); // break; default: list = list.OrderBy <Elanat>(paggingData.SortBy); break; } } else { switch (paggingData.SortBy) { case "messageTopic": list = list.OrderByDescending(c => c.MessageTopic); break; case "messageText": list = list.OrderByDescending(c => c.MessageText); break; case "dateFrom": list = list.OrderByDescending(c => c.DateFrom); break; case "dateTo": list = list.OrderByDescending(c => c.DateTo); break; default: list = list.OrderBy <Elanat>(paggingData.SortBy + " descending"); break; } } return(await Pagging.PagedResult(list, paggingData).ToListAsync()); }