Exemple #1
0
        public IActionResult All(
            string searchString,
            string currentFilter,
            string sortOrder,
            int page    = 1,
            int perPage = ActorsPerPageDefaultValue)
        {
            this.ViewData["CurrentSort"]   = sortOrder;
            this.ViewData["NameSortParam"] = string.IsNullOrEmpty(sortOrder) ? "nameDesc" : string.Empty;

            if (searchString == null)
            {
                searchString = currentFilter;
            }

            this.ViewData["CurrentFilter"] = searchString;

            var actors = this.actorsService
                         .GetAll <ActorViewModel>();

            if (!string.IsNullOrEmpty(searchString))
            {
                actors = actors.Where(x => x.FirstName.ToLower().Contains(searchString.ToLower())).ToList();
            }

            actors = sortOrder switch
            {
                "nameDesc" => actors.OrderByDescending(x => x.FirstName).ToList(),
                _ => actors.OrderBy(x => x.FirstName).ToList(),
            };

            var pagesCount = (int)Math.Ceiling(actors.Count() / (decimal)perPage);

            actors = actors
                     .Skip(perPage * (page - 1))
                     .Take(perPage)
                     .ToList();

            var viewModel = new AllActorsViewModel
            {
                Actors      = actors,
                CurrentPage = page,
                PagesCount  = pagesCount,
            };

            if (viewModel == null)
            {
                return(this.NotFound());
            }

            return(this.View(viewModel));
        }
        public IActionResult ActorsByQuery(string input)
        {
            var viewModel = new AllActorsViewModel
            {
                Actors = this.actorsService.GetAllByQuery <ActorViewModel>(input),
            };

            if (viewModel == null)
            {
                return(this.NotFound());
            }

            return(this.View(viewModel));
        }
        public IActionResult ActorsIndex(int page = 1)
        {
            var viewModel = new AllActorsViewModel();

            if (viewModel == null)
            {
                return(this.NotFound());
            }

            viewModel.Actors = this.actorsService.GetByActorsForPage <ActorViewModel>(ItemsPerPage, (page - 1) * ItemsPerPage);

            var count = this.actorsService.GetActorsCount();

            viewModel.PagesCount = (int)Math.Ceiling((double)count / ItemsPerPage);

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

            viewModel.CurrentPage = page;

            return(this.View(viewModel));
        }