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)); }