private void OnEditEpisode(object parameter) { string commandParameter = parameter.ToString(); if (commandParameter == "SAVE") { if (EpisodeToEdit != null) { Episode episodeToDelete = SelectedEpisode; Episodes.Add(EpisodeToEdit); SelectedEpisode = EpisodeToEdit; Episodes.Remove(episodeToDelete); EpisodeOperationFeedback = "Episode Updated"; } } else if (commandParameter == "CANCEL") { EpisodeToEdit = SelectedEpisode.Copy(); EpisodeOperationFeedback = "Episode Update Canceled"; } else { throw new ArgumentException($"{commandParameter} is not a valid command parameter for the adding widgets."); } }
public override void WireMessages() { Messenger.Default.Register <NotificationMessage>(this, m => { if (m.Notification.Equals(Constants.Messages.ClearEpisodesMsg)) { Episodes.Clear(); } if (m.Notification.Equals(Constants.Messages.RefreshResumeMsg)) { var id = (string)m.Sender; var ticks = (long)m.Target; if (id == SelectedEpisode.Id) { if (SelectedEpisode.UserData == null) { SelectedEpisode.UserData = new UserItemDataDto(); } SelectedEpisode.UserData.PlaybackPositionTicks = ticks; SelectedEpisode.HasPlayed(); CanResume = SelectedEpisode.CanResume; } } }); Messenger.Default.Register <SyncNotificationMessage>(this, m => { if (m.Notification.Equals(Constants.Messages.SyncJobFinishedMsg)) { switch (m.ItemType.ToLower()) { case "episode": if (SelectedEpisode != null && SelectedEpisode.Id == m.ItemId) { SelectedEpisode.IsSynced = true; } if (!Episodes.IsNullOrEmpty()) { var episode = Episodes.FirstOrDefault(x => x.Id == m.ItemId); if (episode != null) { episode.IsSynced = true; } } break; case "season": if (SelectedSeason != null) { SelectedSeason.IsSynced = true; } if (!Seasons.IsNullOrEmpty()) { var season = Seasons.FirstOrDefault(x => x.Id == m.ItemId); if (season != null) { season.IsSynced = true; } } break; case "series": if (SelectedTvSeries != null) { SelectedTvSeries.IsSynced = true; } break; } } }); }