public ListeningEditViewModel(IUnityContainer container, IEventAggregator eventAggregator, IDataService dataService) : base(container, eventAggregator) { this.dataService = dataService; SubscribeEvents(); SearchAlbumCommand = new DelegateCommand <object>(OnSearchAlbumCommand); CreatePlaceCommand = new DelegateCommand <object>(OnCreatePlaceCommand); CreateMoodCommand = new DelegateCommand <object>(OnCreateMoodCommand); LoadDictionaries(() => { if (Listening.IsNew) { bool originalValue = Listening.NeedValidate; Listening.NeedValidate = false; // force reset to avoid initial validation errors Listening.Mood = Moods.FirstOrDefault(); Listening.Place = Places.FirstOrDefault(); // restore to original value Listening.NeedValidate = originalValue; } }); }
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext) { InitializeStyles() .ContinueWith(task => { string styleString = navigationContext.Parameters["Styles"]; if (!string.IsNullOrEmpty(styleString)) { string[] styles = styleString.Split(new[] { ',' }); foreach (var style in styles) { var term = Styles.FirstOrDefault(s => s.Name.Equals(WebUtility.HtmlDecode(style), StringComparison.InvariantCultureIgnoreCase)); if (term != null) { ToggleStyleCommand.Execute(term); } } } }); InitializeMoods() .ContinueWith(task => { string moodString = navigationContext.Parameters["Moods"]; if (!string.IsNullOrEmpty(moodString)) { string[] moods = moodString.Split(new[] { ',' }); foreach (var mood in moods) { var term = Moods.FirstOrDefault(s => s.Name.Equals(WebUtility.HtmlDecode(mood), StringComparison.InvariantCultureIgnoreCase)); if (term != null) { ToggleMoodCommand.Execute(term); } } } }); Tempo.Minimum = GetParameterValue("Tempo", navigationContext.Parameters); Loudness.Minimum = GetParameterValue("Loudness", navigationContext.Parameters); Danceability.Minimum = GetParameterValue("Danceability", navigationContext.Parameters); Energy.Minimum = GetParameterValue("Energy", navigationContext.Parameters); ArtistHotness.Minimum = GetParameterValue("ArtistHotness", navigationContext.Parameters); ArtistFamiliarity.Minimum = GetParameterValue("ArtistFamiliarity", navigationContext.Parameters); SongHotness.Minimum = GetParameterValue("SongHotness", navigationContext.Parameters); }