Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        /// <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());
        }
Beispiel #4
0
        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 }));
            }
        }
Beispiel #5
0
        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 }));
            }
        }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        /// <summary>
        /// Returns total number of news.
        /// </summary>
        public int GetTotalCount(NewsFilterVM filter)
        {
            var news = _newsRepository.GetNewsByFilter(filter).ToList();

            return(news.Count());
        }