private void LibraryOnLibraryChanged(object o, LibraryViewModelArgs args) { if (args.LibraryOperation == LibraryOperation.UpdateMangaChanged) { var model = this.MangaViewModels.SingleOrDefault(m => Equals(m.Id, args.Manga?.Id)); switch (args.MangaOperation) { case MangaOperation.Added: if (model == null) { Client.Dispatcher.Invoke(() => this.MangaViewModels.Add(new MangaModel(args.Manga))); } break; case MangaOperation.Deleted: if (model != null) { Client.Dispatcher.Invoke(() => this.MangaViewModels.Remove(model)); } break; case MangaOperation.UpdateStarted: ActualizeSpeedAndProcess(LastDownload as IManga); this.LastDownload = args.Manga; break; case MangaOperation.UpdateCompleted: ActualizeSpeedAndProcess(args.Manga); this.LastDownload = null; break; case MangaOperation.None: break; default: throw new ArgumentOutOfRangeException(); } } if (args.LibraryOperation == LibraryOperation.UpdateCompleted) { if (Library.ShutdownPC) { Client.Dispatcher.Invoke(() => new ShutdownViewModel().Show()); } Library.ShutdownPC = false; } if (args.LibraryOperation == LibraryOperation.UpdatePercentChanged) { ActualizeSpeedAndProcess(args.Manga); } }
private void LibraryOnLibraryChanged(object sender, LibraryViewModelArgs args) { switch (args.LibraryOperation) { case LibraryOperation.UpdateStarted: Percent = 0; ProgressState = ProgressState.Normal; break; case LibraryOperation.UpdatePercentChanged: Percent = args.Percent ?? 0; break; case LibraryOperation.UpdateMangaChanged: switch (args.MangaOperation) { case MangaOperation.Added: break; case MangaOperation.Deleted: break; case MangaOperation.UpdateStarted: break; case MangaOperation.UpdateCompleted: TaskbarIcon.ShowInTray(Strings.Library_Status_MangaUpdate + args.Manga.Name + " завершено.", args.Manga); break; case MangaOperation.None: break; default: throw new ArgumentOutOfRangeException(); } break; case LibraryOperation.UpdateCompleted: Percent = 0; ProgressState = ProgressState.None; break; default: throw new ArgumentOutOfRangeException(); } }