public IActionResult Index(int currentPage = 1) { IEnumerable <PlaylistDTO> playlistsDTO = service.GetPlaylistsPerPage(currentPage); if (playlistsDTO == null) { return(NotFound()); } var playlistsViewModels = playlistsDTO.Select(plDto => new PlaylistViewModel(plDto)); FilteredPlaylistsViewModel filteredPlaylistList = new FilteredPlaylistsViewModel() { Playlists = playlistsViewModels, AllGenres = service.GetAllGenresAsync().Result.OrderBy(x => x.Name).ToList(), MaxDuration = service.GetHighestPlaytimeAsync().Result, TotalPages = service.GetPageCount(), CurrentPage = currentPage }; return(View(filteredPlaylistList)); }
public async Task <IActionResult> Index([Bind("Name,GenresNames,DurationLimits")] FilterCriteria filterCriteria, int currentPage = 1) { if (ModelState.IsValid) { var filteredName = filterCriteria.Name; var filteredGenres = filterCriteria.GenresNames; var filteredDuration = filterCriteria.DurationLimits; List <string> genres = new List <string>(); if (filteredGenres[0] == "true") //трябва да се върже с GetAllGenres, понеже ако се увеличат, тук филтрирам само 4 { genres.Add("jazz"); } if (filteredGenres[1] == "true") { genres.Add("metal"); } if (filteredGenres[2] == "true") { genres.Add("pop"); } if (filteredGenres[3] == "true") { genres.Add("rock"); } //temporary until the slider range gets two values filteredDuration.Insert(0, 0); var tuple = service.ReturnFilteredPlaylistsAndCountAsync(filteredName, genres, filteredDuration, currentPage).Result; var playlistsCount = tuple.Item1; var playlistsDTO = tuple.Item2; if (playlistsDTO == null) { return(NotFound()); } var playlistsViewModels = playlistsDTO.Select(plDTO => new PlaylistViewModel(plDTO)); var totalPages = service.GetPageCountOfFilteredCollection(playlistsCount); FilteredPlaylistsViewModel filteredPlaylistList = new FilteredPlaylistsViewModel() { Playlists = playlistsViewModels, AllGenres = service.GetAllGenresAsync().Result.OrderBy(x => x.Name).ToList(), MaxDuration = service.GetHighestPlaytimeAsync().Result, //what is the default max value? TotalPages = totalPages, CurrentPage = currentPage }; return(View(filteredPlaylistList)); } return(RedirectToAction("Index", new { error = TempData["Error"] = "Playlist filtration failed." })); }