private void DgVideos_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { ccDetail.Content = null; ccDetailMultiple.Content = null; AnyVideosSelected = dgVideos.SelectedItems.Count > 0; OneVideoSelected = dgVideos.SelectedItems.Count == 1; MultipleVideosSelected = dgVideos.SelectedItems.Count > 1; MultipleTypeRange = cboMultiType.SelectedIndex == 0; MultipleTypeSingle = cboMultiType.SelectedIndex == 1; Visibility visible = Visibility.Visible; // if only one video selected if (OneVideoSelected) { VM_VideoLocal vid = dgVideos.SelectedItem as VM_VideoLocal; ccDetail.Content = vid; if (vid != null && !vid.IsHashed()) { visible = Visibility.Hidden; } } // if only one video selected if (MultipleVideosSelected) { MultipleVideos mv = new MultipleVideos(); mv.SelectedCount = dgVideos.SelectedItems.Count; mv.VideoLocalIDs = new List <int>(); mv.VideoLocals = new List <VM_VideoLocal>(); foreach (object obj in dgVideos.SelectedItems) { VM_VideoLocal vid = obj as VM_VideoLocal; mv.VideoLocalIDs.Add(vid.VideoLocalID); mv.VideoLocals.Add(vid); } ccDetailMultiple.Content = mv; if (!mv.AllHaveHashes) { visible = Visibility.Hidden; } } SetConfirmDetails(); Confirm1.Visibility = Confirm2.Visibility = visible; if (string.IsNullOrEmpty(txtSeriesSearch.Text)) { RefreshSeries(); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
private void CommandBinding_IgnoreFile(object sender, ExecutedRoutedEventArgs e) { try { Window parentWindow = Window.GetWindow(this); object obj = e.Parameter; if (obj == null) { return; } if (obj.GetType() == typeof(VM_VideoLocal)) { VM_VideoLocal vid = obj as VM_VideoLocal; EnableDisableControls(false); string result = VM_ShokoServer.Instance.ShokoServices.SetIgnoreStatusOnFile(vid.VideoLocalID, true); if (result.Length > 0) { MessageBox.Show(result, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } else { RefreshUnrecognisedFiles(); } } if (obj.GetType() == typeof(MultipleVideos)) { MultipleVideos mv = obj as MultipleVideos; foreach (int id in mv.VideoLocalIDs) { string result = VM_ShokoServer.Instance.ShokoServices.SetIgnoreStatusOnFile(id, true); if (result.Length > 0) { MessageBox.Show(result, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } } RefreshUnrecognisedFiles(); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } EnableDisableControls(true); }
private void CommandBinding_RehashFile(object sender, ExecutedRoutedEventArgs e) { try { Window parentWindow = Window.GetWindow(this); object obj = e.Parameter; if (obj == null) { return; } if (obj.GetType() == typeof(VM_VideoLocal)) { VM_VideoLocal vid = obj as VM_VideoLocal; if (vid.IsLocalFile()) { EnableDisableControls(false); VM_ShokoServer.Instance.ShokoServices.RehashFile(vid.VideoLocalID); } } if (obj.GetType() == typeof(MultipleVideos)) { MultipleVideos mv = obj as MultipleVideos; foreach (VM_VideoLocal v in mv.VideoLocals) { if (v.IsLocalFile()) { VM_ShokoServer.Instance.ShokoServices.RehashFile(v.VideoLocalID); } } } MessageBox.Show(Shoko.Commons.Properties.Resources.MSG_INFO_AddedQueueCmds, Shoko.Commons.Properties.Resources.Done, MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { Utils.ShowErrorMessage(ex); } EnableDisableControls(true); }
void lbVideos_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { ccDetail.Content = null; ccDetailMultiple.Content = null; OneVideoSelected = lbVideos.SelectedItems.Count == 1; MultipleVideosSelected = lbVideos.SelectedItems.Count > 1; // if only one video selected if (OneVideoSelected) { VM_VideoLocal vid = lbVideos.SelectedItem as VM_VideoLocal; ccDetail.Content = vid; } // if only one video selected if (MultipleVideosSelected) { MultipleVideos mv = new MultipleVideos(); mv.SelectedCount = lbVideos.SelectedItems.Count; mv.VideoLocalIDs = new List <int>(); foreach (object obj in lbVideos.SelectedItems) { VM_VideoLocal vid = obj as VM_VideoLocal; mv.VideoLocalIDs.Add(vid.VideoLocalID); } ccDetailMultiple.Content = mv; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
private void CommandBinding_DeleteFile(object sender, ExecutedRoutedEventArgs e) { try { Window parentWindow = Window.GetWindow(this); object obj = e.Parameter; if (obj == null) { return; } if (obj.GetType() == typeof(VM_VideoLocal)) { VM_VideoLocal vid = obj as VM_VideoLocal; AskDeleteFile dlg = new AskDeleteFile(string.Format(Shoko.Commons.Properties.Resources.DeleteFile_Title, vid.FileName), string.Format(Shoko.Commons.Properties.Resources.Unrecognized_ConfirmDelete, vid.FileName) + "\r\n\r\n" + Shoko.Commons.Properties.Resources.DeleteFile_Confirm, vid.Places); dlg.Owner = Window.GetWindow(this); bool?res = dlg.ShowDialog(); if (res.HasValue && res.Value) { string tresult = string.Empty; Cursor = Cursors.Wait; foreach (CL_VideoLocal_Place lv in dlg.Selected) { string result = VM_ShokoServer.Instance.ShokoServices.DeleteVideoLocalPlaceAndFile( lv.VideoLocal_Place_ID); if (result.Length > 0) { tresult += result + "\r\n"; } } if (!string.IsNullOrEmpty(tresult)) { MessageBox.Show(tresult, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } RefreshUnrecognisedFiles(); } } if (obj.GetType() == typeof(MultipleVideos)) { MultipleVideos mv = obj as MultipleVideos; AskDeleteFile dlg = new AskDeleteFile(Shoko.Commons.Properties.Resources.DeleteFile_Multiple, Shoko.Commons.Properties.Resources.Unrecognized_DeleteSelected + "\r\n\r\n" + Shoko.Commons.Properties.Resources.DeleteFile_Confirm, mv.VideoLocals.SelectMany(a => a.Places).ToList()); dlg.Owner = Window.GetWindow(this); bool?res = dlg.ShowDialog(); if (res.HasValue && res.Value) { string tresult = string.Empty; Cursor = Cursors.Wait; foreach (CL_VideoLocal_Place lv in dlg.Selected) { string result = VM_ShokoServer.Instance.ShokoServices.DeleteVideoLocalPlaceAndFile(lv.VideoLocal_Place_ID); if (result.Length > 0) { tresult += result + "\r\n"; } } if (!string.IsNullOrEmpty(tresult)) { MessageBox.Show(tresult, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } RefreshUnrecognisedFiles(); } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); RefreshUnrecognisedFiles(); } finally { Cursor = Cursors.Arrow; } }
void lbVideos_SelectionChanged(object sender, SelectionChangedEventArgs e) { // get detailed video, episode and series info if (lbVideos.SelectedItems.Count == 0) { ccDetail.Content = null; ccSeriesDetail.Content = null; OneVideoSelected = false; MultipleVideosSelected = false; return; } if (lbVideos.SelectedItems.Count == 1) { VM_VideoLocal vid = lbVideos.SelectedItem as VM_VideoLocal; OneVideoSelected = true; MultipleVideosSelected = false; displayingVidID = vid.VideoLocalID; EnableDisableControls(false); try { Cursor = Cursors.Wait; ccDetail.Content = vid; // get the episode(s) VM_AnimeEpisode_User ep = (VM_AnimeEpisode_User)VM_ShokoServer.Instance.ShokoServices .GetEpisodesForFile(vid.VideoLocalID, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .FirstOrDefault(); // whether it's null or not ccSeriesDetail.Content = ep; Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; EnableDisableControls(true); } } else { try { Cursor = Cursors.Wait; var vids = lbVideos.SelectedItems.Cast <VM_VideoLocal>().ToList(); OneVideoSelected = false; MultipleVideosSelected = true; MultipleVideos mv = new MultipleVideos(); mv.SelectedCount = vids.Count; mv.VideoLocalIDs = new List <int>(); mv.VideoLocals = new List <VM_VideoLocal>(); var eps = new List <VM_AnimeEpisode_User>(); foreach (var vid in vids) { mv.VideoLocalIDs.Add(vid.VideoLocalID); mv.VideoLocals.Add(vid); // get the episode(s) VM_AnimeEpisode_User ep = (VM_AnimeEpisode_User)VM_ShokoServer.Instance.ShokoServices .GetEpisodesForFile(vid.VideoLocalID, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .FirstOrDefault(); if (ep != null) { eps.Add(ep); } } ccDetailMultiple.Content = mv; displayingVidID = vids.First().VideoLocalID; if (eps.GroupBy(a => a?.AnimeSeriesID ?? 0).Distinct().Count(a => a.Key != 0) == 1) { ccSeriesDetail.Content = eps.FirstOrDefault(); } else { ccSeriesDetail.Content = null; } Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; EnableDisableControls(true); } } }