Ejemplo n.º 1
0
        public IActionResult Index()
        {
            ArticleServiceOptions options = new ArticleServiceOptions
            {
                Limit         = FRONTPAGE_LIMIT,
                ArticleType   = ArticleType.Published,
                IncludeAuthor = true
            };

            ArticleServiceOptions highlightedOptions = new ArticleServiceOptions
            {
                Limit         = 10,
                ArticleType   = ArticleType.Highlighted,
                IncludeAuthor = true,
                IncludeImages = true
            };


            List <Article> articles = _newsService.GetArticles(options);
            //Article leadingArticle = _newsService.GetArticles(highlightedOptions).FirstOrDefault();
            List <Article> leadingArticles = _newsService.GetArticles(highlightedOptions);

            MainPageViewModel viewModel = new MainPageViewModel();

            foreach (Article article in articles)
            {
                viewModel.Articles.Add(new ArticleViewModel(article));
            }

            foreach (Article article in leadingArticles)
            {
                viewModel.LeadingArticles.Add(new ArticleViewModel(article));
            }

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public IActionResult Archive(int page, [FromQuery] SearchModel data)
        {
            if (page == 0)
            {
                page = 1;
            }

            ArticleSearchType searchType = 0;

            if (data.SearchTitle)
            {
                searchType = searchType | ArticleSearchType.Name;
            }
            if (data.SearchLead)
            {
                searchType = searchType | ArticleSearchType.Lead;
            }
            if (data.SearchContent)
            {
                searchType = searchType | ArticleSearchType.Content;
            }



            ArticleServiceOptions options = new ArticleServiceOptions
            {
                Offset        = (page - 1) * ARCHIVE_LIMIT,
                Limit         = ARCHIVE_LIMIT,
                ArticleType   = ArticleType.Published,
                IncludeAuthor = true,
                SearchType    = searchType,
                SearchString  = data.Search,
                DateStart     = data.DateStart,
                DateEnd       = data.DateEnd
            };

            if (options.DateStart.HasValue && options.DateEnd.HasValue && options.DateStart.Value > options.DateEnd.Value)
            {
                ModelState.AddModelError("DateStart", "Kezdődátum nem lehet nagyobb a végdátumnál");
                ModelState.AddModelError("DateEnd", "Kezdődátum nem lehet nagyobb a végdátumnál");

                var vm = new ArchivePageViewModel
                {
                    Search   = data,
                    Articles = { }
                };
                return(View(vm));
            }

            if (options.DateEnd.HasValue)
            {
                options.DateEnd = options.DateEnd.Value.AddDays(1).Date; //Add one day to include DateEnd in search
            }
            if (options.DateStart.HasValue)
            {
                options.DateStart = options.DateStart.Value.Date; //Set DateTime to midnight;
            }


            List <Article> articles = _newsService.GetArticles(options);
            int            count    = _newsService.GetArticleCount(options);

            int pageCount = options.Limit.Value > 0 ? ((count - 1) / options.Limit.Value) + 1 : 1;

            ArchivePageViewModel viewModel = new ArchivePageViewModel
            {
                Search = new SearchModel
                {
                    Limit     = options.Limit ?? 0,
                    Page      = page,
                    PageCount = pageCount,
                    Search    = options.SearchString ?? "",
                    DateStart = options.DateStart,
                    DateEnd   = data.DateEnd,
                },
                Articles = articles.Select(a => new ArticleViewModel(a)).ToList()
            };

            return(View(viewModel));
        }