public GetRadioStationAnnotationRequest(Session session, StationSeed seed) : base(session) { if (string.IsNullOrWhiteSpace(seed.CuratedStationId)) { throw new ArgumentException("Seed is not a station or does not include the " + nameof(seed.CuratedStationId) + "value!"); } IncludeAlbumQuilt = true; Seed = seed; NumberOfFeaturedArtists = 25; NumberOfSimilarStations = 25; }
public StationSeed GetFirstValidStationSeed(StationSeed seed) { if (!string.IsNullOrWhiteSpace(seed.CuratedStationId)) { return(seed); } if (seed.Seeds == null) { return(null); } foreach (var stationSeed in seed.Seeds) { var value = GetFirstValidStationSeed(stationSeed); if (value != null) { return(value); } } return(null); }
/// <summary> /// Get information about the <see cref="StationSeed"/> /// </summary> /// <param name="seed">A <see cref="StationSeed"/> that MUST contain CuratedStationId.</param> /// <returns> /// An <see cref="GetRadioStationAnnotationResponse"/> of data associated to the <see cref="StationSeed"/> /// This will include information such as: /// - Art /// - Title /// - Related Groups /// - Stations /// - Albums /// - Artists /// </returns> public async Task <GetRadioStationAnnotationResponse> GetRadioStationAnnotationAsync(StationSeed seed) { if (!CheckSession()) { return(null); } if (seed.CuratedStationId == null) { return(null); } var request = MakeRequest <GetRadioStationAnnotation>(); var data = await request.GetAsync(new GetRadioStationAnnotationRequest(Session, seed)); return(data); }
private async void LoadTracks() { PlaybackManager.OnPlaybackStateChange += PlaybackManager_OnPlaybackStateChange; var request = await new ListListenNowSituations().GetAsync(new ListListenNowSituationsRequest(SessionManager.MobileSession)); StationSeed seed = null; foreach (var source in request.Situations.Where(x => x.Stations != null)) { if (source.Stations == null) { continue; } foreach (var station in source.Stations) { seed = GetFirstValidStationSeed(station.Seed); if (seed != null) { break; } } } if (seed == null) { return; } var annotaion = await new GetRadioStationAnnotation().GetAsync(new GetRadioStationAnnotationRequest(SessionManager.MobileSession, seed)); var tracks = await new EditRadioStation().GetAsync(new EditRadioStationRequest(SessionManager.MobileSession, new EditRadioStationRequestMutation { CreateOrGet = new EditRadioStationRequestCreateOrGetMutation { ClientId = SessionManager.MobileSession.AndroidId, ImageType = 1, InLibary = false, LastModifiedTimestamp = "-1", Name = "Test Data", RecentTimestamp = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds.ToString("#"), Seed = seed, Deleted = false, }, IncludeFeed = true, NumberOfEntries = 50, Parameters = new EditRadioStationRequestParameters { ContentFilter = 1 } })); foreach (var mutation in tracks.MutateReponse) { if (mutation.Tracks != null) { foreach (var track in mutation.Tracks) { TrackManager.Queue.Enqueue(track); } } else if (mutation.Station?.Tracks != null) { foreach (var track in mutation.Station.Tracks) { TrackManager.Queue.Enqueue(track); } } } dataGrid.IsReadOnly = true; dataGrid.AutoGenerateColumns = true; dataGrid.ItemsSource = TrackManager.Queue; }