コード例 #1
0
        public async Task <IActionResult> Jukebox()
        {
            //check if user forcely quit editing the playlist and delete it
            var appUser = await _userManager.GetUserAsync(User);

            var user = await _jukeboxRepository.GetUserAsync(appUser.Id);

            var myPlaylists = await _jukeboxRepository.GetAllFilteredPlaylistsAsync(p => p.User.Id.Equals(user.Id));

            var playlist = myPlaylists.FirstOrDefault(p => !p.IsCreated);

            if (playlist != null)
            {
                var playlistUser = playlist.User;
                playlistUser.Playlists.Remove(playlist);
                //sending playlistUser cause current user can be admin and other users can't even reach this method
                await _jukeboxRepository.RemovePlaylistAsync(playlist.Id, playlistUser.Id);

                await _jukeboxRepository.UpdateUserAsync(playlistUser, playlistUser.Id);
            }
            var allPlaylists = await _jukeboxRepository.GetAllPlaylistsAsync();

            var model = new JukeboxViewModel(allPlaylists);

            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> Jukebox(JukeboxViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var allTempPlaylists = await _jukeboxRepository.GetAllPlaylistsAsync();

                var tempModel = new JukeboxViewModel(allTempPlaylists);
                return(View(tempModel));
            }
            var allPlaylists = await _jukeboxRepository.GetAllPlaylistsAsync();

            String[] searchedMoods = model.Search.Split(' ');
            var      allMoods      = await _jukeboxRepository.GetAllMoodsAsync();

            var foundedMoods = new List <Mood>();

            foreach (var search in searchedMoods)
            {
                if (allMoods.Any(mood => mood.Value.ToLower().Equals(search.ToLower())))
                {
                    foundedMoods.Add(allMoods.First(mood => mood.Value.ToLower().Equals(search.ToLower())));
                }
            }
            var filteredMoods     = foundedMoods.Where(mood => mood.Playlists != null).ToList();
            var filteredPlaylists = new List <Playlist>();

            foreach (var mood in filteredMoods)
            {
                foreach (var playlist in mood.Playlists)
                {
                    if (!filteredPlaylists.Contains(playlist))
                    {
                        filteredPlaylists.Add(playlist);
                    }
                }
            }
            var newModel = new JukeboxViewModel(allPlaylists, filteredPlaylists, model.Search)
            {
                Moods = foundedMoods
            };

            return(View(newModel));
        }