private async Task ConfirmCreateNewPlaylistAsync() { CollectionPlaylistEditor view = this.container.Resolve <CollectionPlaylistEditor>(); var getCollectionPlaylistEditorViewModel = this.container.Resolve <Func <PlaylistViewModel, CollectionPlaylistEditorViewModel> >(); CollectionPlaylistEditorViewModel viewModel = getCollectionPlaylistEditorViewModel(null); view.DataContext = viewModel; if (this.dialogService.ShowCustomDialog( 0xea37, 16, ResourceUtils.GetString("Language_New_Playlist"), view, 500, 0, false, true, false, true, ResourceUtils.GetString("Language_Ok"), ResourceUtils.GetString("Language_Cancel"), null)) { await this.CreateNewPlaylistAsync(viewModel.EditablePlaylist); } }
private async Task EditSelectedPlaylistAsync() { if (!this.IsPlaylistSelected) { return; } UserControl view = null; CollectionPlaylistEditorViewModel viewModel = null; try { var getCollectionPlaylistEditorViewModel = this.container.Resolve <Func <PlaylistViewModel, CollectionPlaylistEditorViewModel> >(); viewModel = getCollectionPlaylistEditorViewModel(this.selectedPlaylist); if (this.selectedPlaylist.Type.Equals(PlaylistType.Static)) { view = this.container.Resolve <CollectionStaticPlaylistEditor>(); } else if (this.selectedPlaylist.Type.Equals(PlaylistType.Smart)) { view = this.container.Resolve <CollectionSmartPlaylistEditor>(); } if (viewModel == null) { throw new Exception($"{nameof(viewModel)} is null"); } if (view == null) { throw new Exception($"{nameof(view)} is null"); } } catch (Exception ex) { LogClient.Error($"Error while constructing Smart playlist editor View or ViewModel. Exception: {ex.Message}"); this.dialogService.ShowNotification( 0xe711, 16, ResourceUtils.GetString("Language_Error"), ResourceUtils.GetString("Language_Error_Editing_Playlist"), ResourceUtils.GetString("Language_Ok"), true, ResourceUtils.GetString("Language_Log_File")); } view.DataContext = viewModel; if (this.dialogService.ShowCustomDialog( 0xea37, 16, ResourceUtils.GetString("Language_Edit_Playlist"), view, 500, 0, false, true, true, true, ResourceUtils.GetString("Language_Ok"), ResourceUtils.GetString("Language_Cancel"), null)) { EditPlaylistResult result = await this.playlistService.EditPlaylistAsync(viewModel.EditablePlaylist); switch (result) { case EditPlaylistResult.Duplicate: this.dialogService.ShowNotification( 0xe711, 16, ResourceUtils.GetString("Language_Already_Exists"), ResourceUtils.GetString("Language_Already_Playlist_With_That_Name").Replace("{playlistname}", viewModel.EditablePlaylist.PlaylistName), ResourceUtils.GetString("Language_Ok"), false, string.Empty); break; case EditPlaylistResult.Error: this.dialogService.ShowNotification( 0xe711, 16, ResourceUtils.GetString("Language_Error"), ResourceUtils.GetString("Language_Error_Editing_Playlist"), ResourceUtils.GetString("Language_Ok"), true, ResourceUtils.GetString("Language_Log_File")); break; case EditPlaylistResult.Blank: this.dialogService.ShowNotification( 0xe711, 16, ResourceUtils.GetString("Language_Error"), ResourceUtils.GetString("Language_Provide_Playlist_Name"), ResourceUtils.GetString("Language_Ok"), false, string.Empty); break; default: // Never happens break; } } }