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