public void Handle(ToggleDownload command) { var comic = command.Comic; if (comic.HasFinished) { return; } switch (comic.Status) { case Status.Paused: comic.Status = Status.Running; appController.Raise(new ComicChanged(comic)); appController.Execute(new StartDownload(comic)); break; case Status.Running: comic.Status = Status.Paused; appController.Raise(new ComicChanged(comic)); appController.Execute(new PauseDownload(comic)); break; default: throw new InvalidEnumArgumentException("command.Comic.Status", (int)command.Comic.Status, typeof(Status)); } }
public void Handle(DeactivateComic command) { var comic = command.Comic; appController.Execute(new PauseDownload(comic)); comic.Status = Status.Inactive; comic.CurrentPage = null; comic.DownloadedStrips = 0; comic.HasFinished = false; appController.Raise(new ComicChanged(comic)); appController.Raise(new ComicRemoved(comic)); }
public void Handle(DownloadFinished eventData) { var comic = comicStore.Find(eventData.ComicId); comic.HasFinished = true; appController.Raise(new ComicChanged(comic)); }
public void Handle(CurrentPageChanged eventData) { #warning race condition (although there should be at most one thread updating any given comic). var comic = comicStore.Find(eventData.ComicId); comic.CurrentPage = eventData.Url; appController.Raise(new ComicChanged(comic)); }
public void Handle(StripDownloaded eventData) { #warning race condition var comic = comicStore.Find(eventData.ComicId); comic.DownloadedStrips++; appController.Raise(new ComicChanged(comic)); }
public void AddComic(AddInputModel inputModel) { var comic = comicStore.Find(inputModel.ComicId); comic.Status = Status.Running; comic.PrependIndexToStrips = inputModel.PrependIndexToStrips; comic.EmbedMetadata = inputModel.EmbedMetadata; comicStore.PersistComics(); appController.Raise(new ComicActivated(comic)); }
public void Send(string message) { appController.Raise(new AppLogEntryAdded(message)); }
private void ReportVisitingPage(Uri page, Context context) { Log(context, "{0}", page); appController.Raise(new CurrentPageChanged(context.ComicId, page)); }
private void ReportStripDownloaded(Uri link, Context context) { Log(context, "downloaded {0}", link); appController.Raise(new StripDownloaded(context.ComicId)); }