Пример #1
0
        public IActionResult Search(string searchQuery)
        {
            MusixMatchAPI api    = new MusixMatchAPI();
            var           result = api.GetTracks(searchQuery, 5, ApiManager.GetKey(Constants.Services.MusixMatch));

            HttpContext.Session.Set <List <Track> >("tracks", result);
            return(View("Index", result));
        }
Пример #2
0
        public IActionResult Index(string id)
        {
            List <Track> tracks        = HttpContext.Session.Get <List <Track> >("tracks");
            Track        selectedTrack = tracks.Where(t => t.ID == id).First();

            HttpContext.Session.Set <Track>("track", selectedTrack);

            MusixMatchAPI api = new MusixMatchAPI();

            Lyrics result = HttpContext.Session.Get <Lyrics>("lyrics");

            if (result == null)
            {
                result = api.GetLyrics(new Models.Track()
                {
                    ID = id
                }, ApiManager.GetKey(Constants.Services.MusixMatch));
                HttpContext.Session.Set <Lyrics>("lyrics", result);
            }

            string token    = ApiManager.GetKey(Constants.Services.Spotify);
            bool   hasToken = !string.IsNullOrEmpty(token);

            List <Playlist>       playlists     = null;
            List <SelectListItem> playlistItems = new List <SelectListItem>();

            if (hasToken)
            {
                SpotifyService spotifyService = new SpotifyService();
                playlists = spotifyService.GetPlaylists(token);
                foreach (var pl in playlists)
                {
                    playlistItems.Add(new SelectListItem()
                    {
                        Value = pl.ID,
                        Text  = pl.Name
                    });
                }
            }

            LyricsViewModel viewModel = new LyricsViewModel()
            {
                Lyrics     = result,
                Playlists  = playlistItems,
                HasToken   = hasToken,
                TrackAdded = TempData["addedTrack"] != null
            };

            return(View(viewModel));
        }