Example #1
0
        public ActionResult Index(int page = 1, string sourceName = "Все", SortState sortOrder = SortState.Name)
        {
            int pageSize   = 10;
            int newsBefore = db.News.Count();

            NewsUpdate.Update(db, db.Sources.Find(1));
            NewsUpdate.Update(db, db.Sources.Find(2));
            int newsUpdated = db.News.Count();

            ViewBag.NewsAdded = newsUpdated - newsBefore;
            ViewBag.NewsSum   = newsUpdated;
            IQueryable <News> news = db.News.Include(p => p.SourceObj);

            if (!String.IsNullOrEmpty(sourceName) && !sourceName.Equals("Все"))
            {
                news = news.Where(p => p.Source == sourceName);
            }

            switch (sortOrder)
            {
            case SortState.Name:
                news = news.OrderBy(s => s.Source);
                break;

            case SortState.Date:
                news = news.OrderBy(s => s.PublicationTime);
                break;

            default:
                news = news.OrderBy(s => s.Source);
                break;
            }

            var count = news.Count();
            var items = news
                        .Skip((page - 1) * pageSize)
                        .Take(pageSize);

            NewsListViewModel nlvm = new NewsListViewModel
            {
                PageViewModel   = new PageViewModel(count, page, pageSize),
                SortViewModel   = new SortViewModel(sortOrder),
                FilterViewModel = new FilterViewModel(db.Sources.ToList(), sourceName),
                News            = items
            };

            return(View(nlvm));
        }
        public async Task <ActionResult> UpdateNews([FromRoute] int id, [FromBody] NewsUpdate request)
        {
            if (ModelState.IsValid)
            {
                var newsDto = request.ToDto();
                var updated = await _context.Update(newsDto, id);

                if (updated is null)
                {
                    return(NotFound());
                }

                return(Ok());
            }

            return(BadRequest("model validation failed"));
        }
Example #3
0
        private async void FetchNews()
        {
            JsonObject json = await new HttpHelper(BuildRequest()).TryGetJsonAsync();

            if (json == null)
            {
                return;
            }

            var jsonNews = json.GetNamedArray("value");
            var news     = new List <NewsModel>();

            foreach (var x in jsonNews)
            {
                news.Add(NewsFromJsonObject(x.GetObject()));
            }
            NewsUpdate?.Invoke(this, new NewsUpdateEventArgs(news));
        }