public NewsVM GetNews(NewsFilterVM filter, int page) { NewsVM model = new NewsVM(); int pageSize = 2; var query = _newsRepo.GetAll(); if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(x => x.Name.Contains(filter.Name)); } if (filter.Id != 0) { query = query.Where(x => x.Id == filter.Id); } int pageNo = page - 1; model.list = query.OrderBy(x => x.Id) .Skip(pageNo * pageSize) .Take(pageSize) .ToList(); int allCount = query.Count(); model.Page = page; model.maxPage = (int)Math.Ceiling((double)allCount / pageSize); model.NewsFilter = filter; return(model); }
public async Task <IActionResult> Index(NewsFilterVM filter, int page = 1) { var usersCount = HttpContext.Session.GetString("username"); var model = _newsService.GetNews(filter, page); return(View(model)); }
/// <summary> /// Returns paged news. /// </summary> /// <param name="page">Current page number.</param> /// <param name="quantity">Number of items per page.</param> /// <returns>Paged News.</returns> public IEnumerable <News> GetFilteredNews(NewsFilterVM filter, int page, int quantity) { var news = _newsRepository.GetNewsByFilter(filter); return(news.Skip((page - 1) * quantity) .Take(quantity) .ToList()); }
public JsonResult GetNews(NewsFilterVM filter, int page = 1, int quantity = 10) { try { var news = _newsManager.GetFilteredNews(filter, page, quantity); return(new JsonResult(new { success = true, data = news })); } catch (Exception ex) { return(new JsonResult(new { success = false, msg = ex.Message })); } }
public JsonResult GetTotalCount(NewsFilterVM filter) { try { var newsCount = _newsManager.GetTotalCount(filter); return(new JsonResult(new { success = true, data = newsCount })); } catch (Exception ex) { return(new JsonResult(new { success = false, msg = ex.Message })); } }
/// <summary> /// Returns filtered news or a full list of news if none provided. /// </summary> /// <param name="filter">A model with properties, depending on which news is filtered.</param> /// <returns>Filtered news.</returns> public IQueryable <News> GetNewsByFilter(NewsFilterVM filter) { var query = from news in _context.News where filter.Title == null || news.Title.ToLower().Contains(filter.Title.ToLower()) && (filter.Annotation == null || news.Annotation.ToLower() .Contains(filter.Annotation.ToLower())) && (filter.Text == null || news.Text.Contains(filter.Text)) && (!filter.CreateDate.HasValue || news.CreateDate == filter.CreateDate) orderby news.NewsGuid select news; return(query); }
/// <summary> /// Returns total number of news. /// </summary> public int GetTotalCount(NewsFilterVM filter) { var news = _newsRepository.GetNewsByFilter(filter).ToList(); return(news.Count()); }