Added artist top tracks and artist top albums methods to GetArtistInfo in demo app

This commit is contained in:
Rikki Tooley 2014-10-01 00:53:05 +01:00
parent 941c38f01c
commit c25d132185
4 changed files with 80 additions and 21 deletions

View File

@ -264,4 +264,5 @@
<Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
<Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
</Target>
<Import Project="$(XamlSpyInstallPath)MSBuild\FirstFloor.XamlSpy.WindowsPhone.targets" Condition="'$(XamlSpyInstallPath)' != '' and '$(Configuration)' == 'DEBUG'" />
</Project>

View File

@ -29,20 +29,38 @@
</i:Interaction.Behaviors>
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,17,12,0">
<ScrollViewer HorizontalScrollBarVisibility="Disabled"
VerticalAlignment="Stretch">
<StackPanel x:Name="ContentPanel"
Margin="12,17,12,0">
<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="Track" Text="{Binding Track, Mode=TwoWay}"/>
<toolkit:PhoneTextBox Hint="Album" Text="{Binding Album, Mode=TwoWay}"/>
<toolkit:PhoneTextBox Hint="Album artist" Text="{Binding AlbumArtist, Mode=TwoWay}"/>
<TextBlock Text="top tracks" Margin="12,12,0,12" Style="{StaticResource PhoneTextTitle2Style}"/>
<ItemsControl ItemsSource="{Binding TopTracks}"
VerticalAlignment="Top">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"
Style="{StaticResource PhoneTextNormalStyle}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Text="top albums" Margin="12,12,24,12" Style="{StaticResource PhoneTextTitle2Style}"/>
<ItemsControl ItemsSource="{Binding TopAlbums}"
VerticalAlignment="Top">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"
Style="{StaticResource PhoneTextNormalStyle}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
</Grid>
</phone:PhoneApplicationPage>

View File

@ -1,8 +1,6 @@
using System;
using System.ComponentModel;
using IF.Lastfm.Demo.Apollo.TestPages.ViewModels;
using IF.Lastfm.Demo.Apollo.ViewModels.ArtistApi;
using IF.Lastfm.Demo.Apollo.ViewModels.TrackApi;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;

View File

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Threading.Tasks;
using Cimbalino.Phone.Toolkit.Services;
using IF.Lastfm.Core.Api;
@ -16,6 +12,8 @@ public class GetArtistInfoViewModel : BaseViewModel
private string _artistName;
private Artist _artist;
private bool _inProgress;
private IEnumerable<Track> _topTracks;
private IEnumerable<Album> _topAlbums;
public string ArtistName
{
@ -61,11 +59,43 @@ public bool InProgress
}
}
public IEnumerable<Track> TopTracks
{
get { return _topTracks; }
set
{
if (Equals(value, _topTracks))
{
return;
}
_topTracks = value;
OnPropertyChanged();
}
}
public IEnumerable<Album> TopAlbums
{
get { return _topAlbums; }
set
{
if (Equals(value, _topAlbums))
{
return;
}
_topAlbums = value;
OnPropertyChanged();
}
}
public GetArtistInfoViewModel()
{
ArtistName = "Ben Frost";
}
public async Task GetInfo()
{
InProgress = true;
var appsettings = new ApplicationSettingsService();
var apikey = appsettings.Get<string>("apikey");
var apisecret = appsettings.Get<string>("apisecret");
@ -85,6 +115,18 @@ public async Task GetInfo()
{
Artist = artist.Content;
}
var topAlbums = await artistApi.GetTopAlbumsForArtistAsync(ArtistName);
if (topAlbums.Success)
{
TopAlbums = topAlbums;
}
var topTracks = await artistApi.GetTopTracksForArtistAsync(ArtistName);
if (topTracks.Success)
{
TopTracks = topTracks;
}
}
InProgress = false;