2013-06-15 16:17:37 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Cimbalino.Phone.Toolkit.Services;
|
|
|
|
|
using IF.Lastfm.Core.Api;
|
2013-06-15 16:26:30 +01:00
|
|
|
|
using IF.Lastfm.Demo.Apollo.TestPages.ViewModels;
|
2013-06-15 16:17:37 +01:00
|
|
|
|
|
2013-06-15 16:26:30 +01:00
|
|
|
|
namespace IF.Lastfm.Demo.Apollo.ViewModels.TrackApi
|
2013-06-15 16:17:37 +01:00
|
|
|
|
{
|
|
|
|
|
public class ScrobblingTestViewModel : BaseViewModel
|
|
|
|
|
{
|
|
|
|
|
private string _track;
|
|
|
|
|
private string _albumArtist;
|
|
|
|
|
private string _artist;
|
|
|
|
|
private string _album;
|
|
|
|
|
private bool _inProgress;
|
|
|
|
|
private bool _successful;
|
|
|
|
|
|
|
|
|
|
#region Properties
|
|
|
|
|
|
|
|
|
|
public bool InProgress
|
|
|
|
|
{
|
|
|
|
|
get { return _inProgress; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value.Equals(_inProgress))
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_inProgress = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool Successful
|
|
|
|
|
{
|
|
|
|
|
get { return _successful; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value.Equals(_successful))
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_successful = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Artist
|
|
|
|
|
{
|
|
|
|
|
get { return _artist; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value == _artist)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_artist = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Album
|
|
|
|
|
{
|
|
|
|
|
get { return _album; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value == _album)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_album = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Track
|
|
|
|
|
{
|
|
|
|
|
get { return _track; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value == _track)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_track = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string AlbumArtist
|
|
|
|
|
{
|
|
|
|
|
get { return _albumArtist; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value == _albumArtist)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_albumArtist = value;
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public async Task Scrobble()
|
|
|
|
|
{
|
|
|
|
|
InProgress = true;
|
|
|
|
|
|
|
|
|
|
var appsettings = new ApplicationSettingsService();
|
|
|
|
|
|
|
|
|
|
var apikey = appsettings.Get<string>("apikey");
|
|
|
|
|
var apisecret = appsettings.Get<string>("apisecret");
|
|
|
|
|
var username = appsettings.Get<string>("username");
|
|
|
|
|
var pass = appsettings.Get<string>("pass");
|
|
|
|
|
|
|
|
|
|
var auth = new Auth(apikey, apisecret);
|
|
|
|
|
await auth.GetSessionTokenAsync(username, pass);
|
|
|
|
|
|
2013-06-15 16:26:30 +01:00
|
|
|
|
var trackApi = new Core.Api.TrackApi(auth);
|
2013-06-15 16:17:37 +01:00
|
|
|
|
|
|
|
|
|
var scrobble = new Scrobble(Artist, Album, Track, DateTime.UtcNow, AlbumArtist);
|
|
|
|
|
|
|
|
|
|
var response = await trackApi.ScrobbleAsync(scrobble);
|
|
|
|
|
|
|
|
|
|
Successful = response.Success;
|
|
|
|
|
|
|
|
|
|
InProgress = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|