예제 #1
0
        public IActionResult Page(int numberOfPage)
        {
            numberOfPage = numberOfPage < 1 ? _memeRespository.GetMaxPageNumber() : numberOfPage;

            _logger.LogDebug($"Given number of page: {numberOfPage}");

            try
            {
                /*
                 * var tags = _memeRespository.GetAllMemesByNewest().SelectMany(meme => meme.Tags).Distinct().ToList();
                 * ViewBag.Tags = tags;
                 *
                 * var memesByPage = _memeRespository.GetMemesByPage(numberOfPage);
                 * ViewBag.PageRange = _memeRespository.GetPageNumberRange(numberOfPage);
                 * ViewBag.SelectedPage = numberOfPage;
                 *
                 * ViewBag.WhiteListTags = HttpContext.Session.GetString("_whiteListTags");
                 * ViewBag.BlackListTags = HttpContext.Session.GetString("_blackListTags");
                 *
                 * return View(memesByPage); */

                var memesViewModel = new MemesViewModel {
                    Memes   = _memeRespository.GetMemesByPage(numberOfPage),
                    AllTags = _memeRespository.GetAllTags(),
                    WhiteListTagsAsString = HttpContext.Session.GetString("_whiteListTags"),
                    BlackListTagsAsString = HttpContext.Session.GetString("_blackListTags"),
                    PageNumbers           = _memeRespository.GetPageNumberRange(numberOfPage),
                    SelectedPage          = numberOfPage
                };

                return(View(memesViewModel));
            }
            catch (ArgumentOutOfRangeException e)
            {
                return(View("~/Views/Error.cshtml", new string[] { "ArgumentOutOfRangeException", e.Message }));
            }
        }
 public MemesPage()
 {
     InitializeComponent();
     DataContext = new MemesViewModel();
 }