|
using System;
using System.Diagnostics;
using System.Globalization;
using System.Windows.Data;
using MediaAssistant.Data;
using MediaAssistant.DAL;
namespace MediaAssistant.Converters
{
public class PrepareMusicConverter:IMultiValueConverter
{
#region Implementation of IMultiValueConverter
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
var music = (Music)values[0];
var dataSource = (LibraryDataSource) values[1];
if(string.IsNullOrEmpty(music.Preferance))
{
PrepareMusic(music,dataSource.PlayingMusic,dataSource.SelectedProfile);
}
return music.Preferance;
}
private static void PrepareMusic(Music music, Music playingMusic, Profile selectedProfile)
{
Debug.WriteLine("Waiting for lock PrepareMusic at MusicStatusConverter");
lock (DatabaseManager.LockObject)
{
Debug.WriteLine("lock PrepareMusic at MusicStatusConverter");
DatabaseManager.Instance.SetMusicStatus(music, playingMusic);
DatabaseManager.Instance.AdvanceScore(selectedProfile, music, 0);
music.Preferance = string.Format("{0:0.00}", DatabaseManager.Instance.GetScore(music, selectedProfile));
Debug.WriteLine("unlock PrepareMusic at MusicStatusConverter");
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.