Rename track, album and artist objects

This commit is contained in:
Harry 2014-10-07 10:12:09 -04:00
parent 878e7c0e63
commit c8429bd361
24 changed files with 93 additions and 93 deletions

View File

@ -17,9 +17,9 @@ public void AlbumParsesValidJson()
{
var jo = ResourceManager.LoadResource(Encoding.UTF8.GetString(TestData.AlbumGetInfo));
var parsed = Album.ParseJToken(jo.SelectToken("album"));
var parsed = LastAlbum.ParseJToken(jo.SelectToken("album"));
var expected = new Album
var expected = new LastAlbum
{
ArtistId = "283786832",
ArtistName = "Grimes",
@ -42,7 +42,7 @@ public void AlbumParsesValidJson()
Url = new Uri("http://www.last.fm/tag/best%20of%202012", UriKind.Absolute)
}
},
Tracks = new List<Track>
Tracks = new List<LastTrack>
{
}
};

View File

@ -15,7 +15,7 @@ public AlbumApi(IAuth auth)
Auth = auth;
}
public async Task<LastResponse<Album>> GetAlbumInfoAsync(string artistname, string albumname, bool autocorrect = false)
public async Task<LastResponse<LastAlbum>> GetAlbumInfoAsync(string artistname, string albumname, bool autocorrect = false)
{
var command = new GetAlbumInfoCommand(Auth, artistname, albumname)
{
@ -40,7 +40,7 @@ public Task<PageResponse<Tag>> GetTopTagsForAlbumAsync(string artist, string alb
throw new NotImplementedException();
}
public Task<PageResponse<Album>> SearchForAlbumAsync(string album, int page = 1, int itemsPerPage = LastFm.DefaultPageLength)
public Task<PageResponse<LastAlbum>> SearchForAlbumAsync(string album, int page = 1, int itemsPerPage = LastFm.DefaultPageLength)
{
throw new NotImplementedException();
}

View File

@ -15,7 +15,7 @@ public ArtistApi(IAuth auth)
Auth = auth;
}
public async Task<LastResponse<Artist>> GetArtistInfoAsync(string artist,
public async Task<LastResponse<LastArtist>> GetArtistInfoAsync(string artist,
string bioLang = LastFm.DefaultLanguageCode,
bool autocorrect = false)
{
@ -28,7 +28,7 @@ public async Task<LastResponse<Artist>> GetArtistInfoAsync(string artist,
return await command.ExecuteAsync();
}
public async Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
public async Task<PageResponse<LastAlbum>> GetTopAlbumsForArtistAsync(string artist,
bool autocorrect = false,
int page = 1,
int itemsPerPage = LastFm.DefaultPageLength)
@ -37,7 +37,7 @@ public async Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
return await command.ExecuteAsync();
}
public async Task<PageResponse<Track>> GetTopTracksForArtistAsync(string artist,
public async Task<PageResponse<LastTrack>> GetTopTracksForArtistAsync(string artist,
bool autocorrect = false,
int page = 1,
int itemsPerPage = LastFm.DefaultPageLength)

View File

@ -10,7 +10,7 @@
namespace IF.Lastfm.Core.Api.Commands.AlbumApi
{
internal class GetAlbumInfoCommand : GetAsyncCommandBase<LastResponse<Album>>
internal class GetAlbumInfoCommand : GetAsyncCommandBase<LastResponse<LastAlbum>>
{
public string ArtistName { get; private set; }
public string AlbumName { get; private set; }
@ -32,7 +32,7 @@ public override void SetParameters()
base.DisableCaching();
}
public async override Task<LastResponse<Album>> HandleResponse(HttpResponseMessage response)
public async override Task<LastResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -41,13 +41,13 @@ public async override Task<LastResponse<Album>> HandleResponse(HttpResponseMessa
{
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
var album = Album.ParseJToken(jtoken.SelectToken("album"));
var album = LastAlbum.ParseJToken(jtoken.SelectToken("album"));
return LastResponse<Album>.CreateSuccessResponse(album);
return LastResponse<LastAlbum>.CreateSuccessResponse(album);
}
else
{
return LastResponse.CreateErrorResponse<LastResponse<Album>>(error);
return LastResponse.CreateErrorResponse<LastResponse<LastAlbum>>(error);
}
}
}

View File

@ -9,7 +9,7 @@
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
{
internal class GetArtistInfoCommand : GetAsyncCommandBase<LastResponse<Artist>>
internal class GetArtistInfoCommand : GetAsyncCommandBase<LastResponse<LastArtist>>
{
public string ArtistName { get; set; }
public string BioLanguage { get; set; }
@ -33,7 +33,7 @@ public override void SetParameters()
base.DisableCaching();
}
public async override Task<LastResponse<Artist>> HandleResponse(HttpResponseMessage response)
public async override Task<LastResponse<LastArtist>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -42,13 +42,13 @@ public async override Task<LastResponse<Artist>> HandleResponse(HttpResponseMess
{
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
var artist = Artist.ParseJToken(jtoken.SelectToken("artist"));
var artist = LastArtist.ParseJToken(jtoken.SelectToken("artist"));
return LastResponse<Artist>.CreateSuccessResponse(artist);
return LastResponse<LastArtist>.CreateSuccessResponse(artist);
}
else
{
return LastResponse.CreateErrorResponse<LastResponse<Artist>>(error);
return LastResponse.CreateErrorResponse<LastResponse<LastArtist>>(error);
}
}
}

View File

@ -11,7 +11,7 @@
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
{
internal class GetArtistTopAlbumsCommand : GetAsyncCommandBase<PageResponse<Album>>
internal class GetArtistTopAlbumsCommand : GetAsyncCommandBase<PageResponse<LastAlbum>>
{
public string ArtistName { get; set; }
@ -29,7 +29,7 @@ public override void SetParameters()
base.DisableCaching();
}
public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessage response)
public async override Task<PageResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -38,15 +38,15 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
{
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
var albums = new List<Album>();
var albums = new List<LastAlbum>();
foreach (var jToken in jtoken.SelectToken("topalbums").SelectToken("album").Children())
{
var album = Album.ParseJToken(jToken);
var album = LastAlbum.ParseJToken(jToken);
albums.Add(album);
}
var pageresponse = PageResponse<Album>.CreateSuccessResponse(albums);
var pageresponse = PageResponse<LastAlbum>.CreateSuccessResponse(albums);
var attrToken = jtoken.SelectToken("topalbums").SelectToken("@attr");
pageresponse.AddPageInfoFromJToken(attrToken);
@ -55,7 +55,7 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
}
else
{
return LastResponse.CreateErrorResponse<PageResponse<Album>>(error);
return LastResponse.CreateErrorResponse<PageResponse<LastAlbum>>(error);
}
}
}

View File

@ -11,7 +11,7 @@
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
{
internal class GetArtistTopTracksCommand : GetAsyncCommandBase<PageResponse<Track>>
internal class GetArtistTopTracksCommand : GetAsyncCommandBase<PageResponse<LastTrack>>
{
public string ArtistName { get; set; }
@ -29,7 +29,7 @@ public override void SetParameters()
base.DisableCaching();
}
public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessage response)
public async override Task<PageResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -38,15 +38,15 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
{
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
var tracks = new List<Track>();
var tracks = new List<LastTrack>();
foreach (var jToken in jtoken.SelectToken("toptracks").SelectToken("track").Children())
{
var t = Track.ParseJToken(jToken);
var t = LastTrack.ParseJToken(jToken);
tracks.Add(t);
}
var pageresponse = PageResponse<Track>.CreateSuccessResponse(tracks);
var pageresponse = PageResponse<LastTrack>.CreateSuccessResponse(tracks);
var attrToken = jtoken.SelectToken("toptracks").SelectToken("@attr");
pageresponse.AddPageInfoFromJToken(attrToken);
@ -55,7 +55,7 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
}
else
{
return LastResponse.CreateErrorResponse<PageResponse<Track>>(error);
return LastResponse.CreateErrorResponse<PageResponse<LastTrack>>(error);
}
}
}

View File

@ -9,7 +9,7 @@
namespace IF.Lastfm.Core.Api.Commands.TrackApi
{
internal class GetTrackInfoCommand : GetAsyncCommandBase<LastResponse<Track>>
internal class GetTrackInfoCommand : GetAsyncCommandBase<LastResponse<LastTrack>>
{
public string TrackName { get; set; }
public string ArtistName { get; set; }
@ -36,7 +36,7 @@ public override void SetParameters()
}
}
public async override Task<LastResponse<Track>> HandleResponse(HttpResponseMessage response)
public async override Task<LastResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -45,13 +45,13 @@ public async override Task<LastResponse<Track>> HandleResponse(HttpResponseMessa
{
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
var track = Track.ParseJToken(jtoken.SelectToken("track"));
var track = LastTrack.ParseJToken(jtoken.SelectToken("track"));
return LastResponse<Track>.CreateSuccessResponse(track);
return LastResponse<LastTrack>.CreateSuccessResponse(track);
}
else
{
return LastResponse.CreateErrorResponse<LastResponse<Track>>(error);
return LastResponse.CreateErrorResponse<LastResponse<LastTrack>>(error);
}
}
}

View File

@ -10,7 +10,7 @@
namespace IF.Lastfm.Core.Api.Commands.UserApi
{
internal class GetRecentScrobblesCommand : GetAsyncCommandBase<PageResponse<Track>>
internal class GetRecentScrobblesCommand : GetAsyncCommandBase<PageResponse<LastTrack>>
{
public string Username { get; private set; }
public DateTime From { get; private set; }
@ -31,7 +31,7 @@ public override void SetParameters()
DisableCaching();
}
public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessage response)
public async override Task<PageResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
{
var json = await response.Content.ReadAsStringAsync();
@ -42,15 +42,15 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
var tracksToken = jtoken.SelectToken("track");
var tracks = new List<Track>();
var tracks = new List<LastTrack>();
foreach (var track in tracksToken.Children())
{
var t = Track.ParseJToken(track);
var t = LastTrack.ParseJToken(track);
tracks.Add(t);
}
var pageresponse = PageResponse<Track>.CreateSuccessResponse(tracks);
var pageresponse = PageResponse<LastTrack>.CreateSuccessResponse(tracks);
var attrToken = jtoken.SelectToken("@attr");
pageresponse.AddPageInfoFromJToken(attrToken);
@ -59,7 +59,7 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
}
else
{
return LastResponse.CreateErrorResponse<PageResponse<Track>>(error);
return LastResponse.CreateErrorResponse<PageResponse<LastTrack>>(error);
}
}
}

View File

@ -11,7 +11,7 @@
namespace IF.Lastfm.Core.Api.Commands.UserApi
{
internal class GetTopAlbumsCommand : GetAsyncCommandBase<PageResponse<Album>>
internal class GetTopAlbumsCommand : GetAsyncCommandBase<PageResponse<LastAlbum>>
{
public string Username { get; set; }
public LastStatsTimeSpan TimeSpan { get; set; }
@ -32,7 +32,7 @@ public override void SetParameters()
DisableCaching();
}
public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessage response)
public async override Task<PageResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
{
string json = await response.Content.ReadAsStringAsync();
@ -43,13 +43,13 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
var albumsToken = jtoken.SelectToken("topalbums").SelectToken("album");
var albums = albumsToken.Children().Select(Album.ParseJToken);
var albums = albumsToken.Children().Select(LastAlbum.ParseJToken);
return PageResponse<Album>.CreateSuccessResponse(albums);
return PageResponse<LastAlbum>.CreateSuccessResponse(albums);
}
else
{
return LastResponse.CreateErrorResponse<PageResponse<Album>>(error);
return LastResponse.CreateErrorResponse<PageResponse<LastAlbum>>(error);
}
}
}

View File

@ -8,7 +8,7 @@ public interface IAlbumApi
{
IAuth Auth { get; }
Task<LastResponse<Album>> GetAlbumInfoAsync(string artist, string album, bool autocorrect = false);
Task<LastResponse<LastAlbum>> GetAlbumInfoAsync(string artist, string album, bool autocorrect = false);
Task<PageResponse<BuyLink>> GetBuyLinksForAlbumAsync(string artist,
string album,
@ -24,7 +24,7 @@ Task<PageResponse<Tag>> GetTopTagsForAlbumAsync(string artist,
string album,
bool autocorrect = false);
Task<PageResponse<Album>> SearchForAlbumAsync(string album,
Task<PageResponse<LastAlbum>> SearchForAlbumAsync(string album,
int page = 1,
int itemsPerPage = LastFm.DefaultPageLength);

View File

@ -12,15 +12,15 @@ public interface IArtistApi
{
IAuth Auth { get; }
Task<LastResponse<Artist>> GetArtistInfoAsync(string artist, string bioLang = LastFm.DefaultLanguageCode,
Task<LastResponse<LastArtist>> GetArtistInfoAsync(string artist, string bioLang = LastFm.DefaultLanguageCode,
bool autocorrect = false);
Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
Task<PageResponse<LastAlbum>> GetTopAlbumsForArtistAsync(string artist,
bool autocorrect = false,
int page = 1,
int itemsPerPage = LastFm.DefaultPageLength);
Task<PageResponse<Track>> GetTopTracksForArtistAsync(string artist,
Task<PageResponse<LastTrack>> GetTopTracksForArtistAsync(string artist,
bool autocorrect = false,
int page = 1,
int itemsPerPage = LastFm.DefaultPageLength);

View File

@ -18,7 +18,7 @@ Task<PageResponse<Shout>> GetShoutsForTrackAsync(string trackname,
int page = 0,
int count = LastFm.DefaultPageLength);
Task<LastResponse<Track>> GetInfoAsync(string trackname, string artistname, string username = "");
Task<LastResponse<LastTrack>> GetInfoAsync(string trackname, string artistname, string username = "");
Task<LastResponse> LoveTrackAsync(string trackname, string artistname);
Task<LastResponse> UnloveTrackAsync(string trackname, string artistname);

View File

@ -10,12 +10,12 @@ public interface IUserApi
{
IAuth Auth { get; }
Task<PageResponse<Album>> GetTopAlbums(string username,
Task<PageResponse<LastAlbum>> GetTopAlbums(string username,
LastStatsTimeSpan span,
int startIndex = 0,
int endIndex = LastFm.DefaultPageLength);
Task<PageResponse<Track>> GetRecentScrobbles(string username,
Task<PageResponse<LastTrack>> GetRecentScrobbles(string username,
DateTime since,
int startIndex = 0,
int endIndex = LastFm.DefaultPageLength);

View File

@ -66,7 +66,7 @@ public async Task<PageResponse<Shout>> GetShoutsForTrackAsync(string trackname,
return await command.ExecuteAsync();
}
public async Task<LastResponse<Track>> GetInfoAsync(string trackname, string artistname, string username = "")
public async Task<LastResponse<LastTrack>> GetInfoAsync(string trackname, string artistname, string username = "")
{
var command = new GetTrackInfoCommand(Auth, trackname, artistname)
{

View File

@ -24,7 +24,7 @@ public UserApi(IAuth auth)
/// <param name="pagenumber"></param>
/// <param name="count"></param>
/// <returns></returns>
public async Task<PageResponse<Album>> GetTopAlbums(string username, LastStatsTimeSpan span, int pagenumber = 0, int count = LastFm.DefaultPageLength)
public async Task<PageResponse<LastAlbum>> GetTopAlbums(string username, LastStatsTimeSpan span, int pagenumber = 0, int count = LastFm.DefaultPageLength)
{
var command = new GetTopAlbumsCommand(Auth, username, span)
{
@ -43,7 +43,7 @@ public async Task<PageResponse<Album>> GetTopAlbums(string username, LastStatsTi
/// <param name="pagenumber"></param>
/// <param name="count"></param>
/// <returns></returns>
public async Task<PageResponse<Track>> GetRecentScrobbles(string username, DateTime since, int pagenumber = 0, int count = LastFm.DefaultPageLength)
public async Task<PageResponse<LastTrack>> GetRecentScrobbles(string username, DateTime since, int pagenumber = 0, int count = LastFm.DefaultPageLength)
{
var command = new GetRecentScrobblesCommand(Auth, username, since)
{

View File

@ -81,8 +81,8 @@
<Compile Include="Api\UserApi.cs" />
<Compile Include="Json\LastFmBooleanConverter.cs" />
<Compile Include="LastFm.cs" />
<Compile Include="Objects\Album.cs" />
<Compile Include="Objects\Artist.cs" />
<Compile Include="Objects\LastAlbum.cs" />
<Compile Include="Objects\LastArtist.cs" />
<Compile Include="Objects\BuyLink.cs" />
<Compile Include="Objects\CountryCode.cs" />
<Compile Include="Objects\ILastFmObject.cs" />
@ -90,7 +90,7 @@
<Compile Include="Objects\Shout.cs" />
<Compile Include="Objects\Station.cs" />
<Compile Include="Objects\Tag.cs" />
<Compile Include="Objects\Track.cs" />
<Compile Include="Objects\LastTrack.cs" />
<Compile Include="Objects\User.cs" />
<Compile Include="Objects\UserSession.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

View File

@ -5,12 +5,12 @@
namespace IF.Lastfm.Core.Objects
{
public class Album : ILastFmObject
public class LastAlbum : ILastFmObject
{
#region Properties
public string Name { get; set; }
public IEnumerable<Track> Tracks { get; set; }
public IEnumerable<LastTrack> Tracks { get; set; }
public string ArtistName { get; set; }
public string ArtistId { get; set; }
@ -36,9 +36,9 @@ public class Album : ILastFmObject
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
internal static Album ParseJToken(JToken token)
internal static LastAlbum ParseJToken(JToken token)
{
var a = new Album();
var a = new LastAlbum();
try
{
@ -48,7 +48,7 @@ internal static Album ParseJToken(JToken token)
var tracksToken = token.SelectToken("tracks").SelectToken("track");
if (tracksToken != null)
{
a.Tracks = tracksToken.Children().Select(trackToken => Track.ParseJToken(trackToken, a.Name));
a.Tracks = tracksToken.Children().Select(trackToken => LastTrack.ParseJToken(trackToken, a.Name));
}
var tagsToken = token.SelectToken("toptags").SelectToken("tag");
@ -59,8 +59,8 @@ internal static Album ParseJToken(JToken token)
}
catch
{
// for when artist is not a string but a Artist object
var artist = token.SelectToken("artist").ToObject<Artist>();
// for when artist is not a string but a LastArtist object
var artist = token.SelectToken("artist").ToObject<LastArtist>();
a.ArtistName = artist.Name;
a.ArtistId = artist.Mbid;
}

View File

@ -8,7 +8,7 @@ namespace IF.Lastfm.Core.Objects
/// <summary>
/// Todo bio, tour, similar, stats, streamable
/// </summary>
public class Artist : ILastFmObject
public class LastArtist : ILastFmObject
{
#region Properties
@ -22,9 +22,9 @@ public class Artist : ILastFmObject
#endregion
internal static Artist ParseJToken(JToken token)
internal static LastArtist ParseJToken(JToken token)
{
var a = new Artist();
var a = new LastArtist();
a.Name = token.Value<string>("name");
a.Mbid = token.Value<string>("mbid");

View File

@ -9,7 +9,7 @@ namespace IF.Lastfm.Core.Objects
/// <summary>
/// TODO Wiki, Stream availability
/// </summary>
public class Track : ILastFmObject
public class LastTrack : ILastFmObject
{
#region Properties
@ -39,9 +39,9 @@ public class Track : ILastFmObject
/// <param name="token">A valid JToken</param>
/// <returns>track equivalent to the JToken</returns>
/// <remarks>If this method is used directly then the duration attribute will be parsed as MILLIseconds</remarks>
internal static Track ParseJToken(JToken token)
internal static LastTrack ParseJToken(JToken token)
{
var t = new Track();
var t = new LastTrack();
t.Name = token.Value<string>("name");
t.Mbid = token.Value<string>("mbid");
@ -50,14 +50,14 @@ internal static Track ParseJToken(JToken token)
var artistToken = token.SelectToken("artist");
if (artistToken != null)
{
t.ArtistName = Artist.GetNameFromJToken(artistToken);
t.ArtistName = LastArtist.GetNameFromJToken(artistToken);
t.ArtistMbid = artistToken.Value<string>("mbid");
}
var albumToken = token.SelectToken("album");
if (albumToken != null)
{
t.AlbumName = Album.GetNameFromJToken(albumToken);
t.AlbumName = LastAlbum.GetNameFromJToken(albumToken);
}
var tagsToken = token.SelectToken("toptags");
@ -109,7 +109,7 @@ internal static Track ParseJToken(JToken token)
/// <param name="albumName">Name of the album this track belongs to</param>
/// <returns>track equivalent to the JToken</returns>
/// <remarks>If this method is used then the duration attribute will be parsed as seconds</remarks>
internal static Track ParseJToken(JToken token, string albumName)
internal static LastTrack ParseJToken(JToken token, string albumName)
{
var t = ParseJToken(token);
t.AlbumName = albumName;

View File

@ -39,7 +39,7 @@
<Button Content="Scrobbling" Click="OnScrobblingLinkClick"/>
<Button Content="History" Click="OnHistoryLinkClick"/>
<Button Content="Recent Stations" Click="OnRecentStationsLinkClick"/>
<Button Content="Get Artist Info" Click="OnGetArtistInfoLinkClick"/>
<Button Content="Get LastArtist Info" Click="OnGetArtistInfoLinkClick"/>
</StackPanel>
</Grid>

View File

@ -36,17 +36,17 @@
Margin="12,0">
<StackPanel>
<StackPanel.Background>
<ImageBrush ImageSource="{Binding Artist.MainImage.Mega}"
<ImageBrush ImageSource="{Binding LastArtist.MainImage.Mega}"
Opacity="0.7"
Stretch="UniformToFill"/>
</StackPanel.Background>
<TextBlock Text="LASTFM-WP DEMO APP" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="artist info" Margin="9,-7,0,12" Style="{StaticResource PhoneTextTitle1Style}"/>
<toolkit:PhoneTextBox Hint="Artist" Text="{Binding ArtistName, Mode=TwoWay}"/>
<toolkit:PhoneTextBox Hint="LastArtist" Text="{Binding ArtistName, Mode=TwoWay}"/>
</StackPanel>
<TextBlock Text="top tags" Margin="12,12,0,12" Style="{StaticResource PhoneTextTitle2Style}"/>
<ItemsControl ItemsSource="{Binding Artist.Tags}"
<ItemsControl ItemsSource="{Binding LastArtist.Tags}"
VerticalAlignment="Top">
<ItemsControl.ItemTemplate>
<DataTemplate>

View File

@ -10,10 +10,10 @@ namespace IF.Lastfm.Demo.Apollo.ViewModels.ArtistApi
public class GetArtistInfoViewModel : BaseViewModel
{
private string _artistName;
private Artist _artist;
private LastArtist _lastArtist;
private bool _inProgress;
private IEnumerable<Track> _topTracks;
private IEnumerable<Album> _topAlbums;
private IEnumerable<LastTrack> _topTracks;
private IEnumerable<LastAlbum> _topAlbums;
public string ArtistName
{
@ -30,17 +30,17 @@ public string ArtistName
}
}
public Artist Artist
public LastArtist LastArtist
{
get { return _artist; }
get { return _lastArtist; }
set
{
if (Equals(value, _artist))
if (Equals(value, _lastArtist))
{
return;
}
_artist = value;
_lastArtist = value;
OnPropertyChanged();
}
}
@ -59,7 +59,7 @@ public bool InProgress
}
}
public IEnumerable<Track> TopTracks
public IEnumerable<LastTrack> TopTracks
{
get { return _topTracks; }
set
@ -73,7 +73,7 @@ public IEnumerable<Track> TopTracks
}
}
public IEnumerable<Album> TopAlbums
public IEnumerable<LastAlbum> TopAlbums
{
get { return _topAlbums; }
set
@ -113,7 +113,7 @@ public async Task GetInfo()
var artist = await artistApi.GetArtistInfoAsync(ArtistName);
if (artist.Success)
{
Artist = artist.Content;
LastArtist = artist.Content;
}
var topAlbums = await artistApi.GetTopAlbumsForArtistAsync(ArtistName);

View File

@ -12,7 +12,7 @@ public class HistoryTestViewModel : BaseViewModel
{
private bool _inProgress;
private bool _successful;
private ObservableCollection<Track> _tracks;
private ObservableCollection<LastTrack> _tracks;
private Auth _auth;
private PageProgress _historyPageProgress;
@ -63,7 +63,7 @@ public bool Successful
}
}
public ObservableCollection<Track> Tracks
public ObservableCollection<LastTrack> Tracks
{
get { return _tracks; }
set
@ -83,7 +83,7 @@ public ObservableCollection<Track> Tracks
public HistoryTestViewModel()
{
_historyPageProgress = new PageProgress();
Tracks = new ObservableCollection<Track>();
Tracks = new ObservableCollection<LastTrack>();
}
public async Task NavigatedTo()