Пример #1
0
        public async Task <IActionResult> All(int page = 1)
        {
            var guidesCount = await this.guidesService.GetAllCountAsync();

            var pagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage);

            if (page > pagesCount)
            {
                page = pagesCount;
            }

            if (page <= 0)
            {
                page = 1;
            }

            var guides = await this.guidesService.GetAllAsync <GuideViewModel>(GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage);

            var model = new AllGuidesViewModel()
            {
                Guides     = guides,
                PagesCount = pagesCount,
            };

            if (model.PagesCount == 0)
            {
                model.PagesCount = 1;
            }

            model.CurrentPage = page;

            return(this.View(model));
        }
Пример #2
0
        public async Task <IActionResult> BySearch(string search, int page = 1)
        {
            var guidesCount = await this.guidesService.GetCountBySearchAsync(search);

            var pagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage);

            if (page > pagesCount)
            {
                page = pagesCount;
            }

            if (page <= 0)
            {
                page = 1;
            }

            var guides = await this.searchBarService.SearchGuide <GuideViewModel>(search, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage);

            var model = new AllGuidesViewModel()
            {
                Guides     = guides,
                PagesCount = pagesCount,
            };

            if (model.PagesCount == 0)
            {
                model.PagesCount = 1;
            }

            model.CurrentPage = page;
            model.SearchWord  = search;

            return(this.View(model));
        }
Пример #3
0
        public async Task <IActionResult> ByUser(string username, int page = 1)
        {
            var user = await this.userManager.Users.FirstOrDefaultAsync(x => x.UserName == username);

            if (user == null)
            {
                return(this.RedirectToAction("All"));
            }

            var userId = await this.userManager.GetUserIdAsync(user);

            var guidesCount = await this.guidesService.GetCountByUserAsync(userId);

            var pagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage);

            if (page > pagesCount)
            {
                page = pagesCount;
            }

            if (page <= 0)
            {
                page = 1;
            }

            var guides = await this.guidesService
                         .GetByUserAsync <GuideViewModel>(userId, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage);

            var result = new AllGuidesViewModel()
            {
                Guides     = guides,
                PagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage),
            };

            if (result.PagesCount == 0)
            {
                result.PagesCount = 1;
            }

            if (page > result.PagesCount)
            {
                page = result.PagesCount;
            }

            result.CurrentPage = page;
            return(this.View(result));
        }
Пример #4
0
        public async Task <IActionResult> ByCategory(string name, int page = 1)
        {
            if (!Enum.TryParse(typeof(CategoryOfGuide), name, out _))
            {
                return(this.RedirectToAction("All"));
            }

            var enumResult  = Enum.Parse <CategoryOfGuide>(name);
            var guidesCount = await this.guidesService.GetCountByCategoryAsync(enumResult);

            var pagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage);

            if (page > pagesCount)
            {
                page = pagesCount;
            }

            if (page <= 0)
            {
                page = 1;
            }

            var guides = await this.guidesService
                         .GetByCategoryAsync <GuideViewModel>(enumResult, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage);

            var result = new AllGuidesViewModel
            {
                Guides     = guides,
                PagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage),
            };

            if (result.PagesCount == 0)
            {
                result.PagesCount = 1;
            }

            if (page > result.PagesCount)
            {
                page = result.PagesCount;
            }

            result.CurrentPage = page;
            return(this.View(result));
        }
Пример #5
0
        public async Task <IActionResult> MyGuides(int page = 1)
        {
            var user = await this.userManager.GetUserAsync(this.User);

            var userId = await this.userManager.GetUserIdAsync(user);

            var guidesCount = await this.guidesService.GetCountByUserAsync(userId);

            var pagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage);

            if (page > pagesCount)
            {
                page = pagesCount;
            }

            if (page <= 0)
            {
                page = 1;
            }

            var guides = await this.guidesService
                         .GetByUserAsync <GuideViewModel>(userId, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage);

            var result = new AllGuidesViewModel()
            {
                Guides     = guides,
                PagesCount = (int)Math.Ceiling((double)guidesCount / GlobalConstants.ItemsPerPage),
            };

            if (result.PagesCount == 0)
            {
                result.PagesCount = 1;
            }

            if (page > result.PagesCount)
            {
                page = result.PagesCount;
            }

            result.CurrentPage = page;
            return(this.View(result));
        }