private void AddSelectedShow() { if (ListViewAutoCompl.HasItems && ListViewAutoCompl.SelectedItem == null) { ListViewAutoCompl.SelectedIndex = 0; } if (ListViewAutoCompl.SelectedItem != null) { foreach (var item in ListViewAutoCompl.SelectedItems) { var selectedShow = (KeyValuePair <string, string>)item; if (_setti.TvShows.Any(t => t.Show.Url == selectedShow.Value)) { return; } TextBoxAutoComl.Text = ""; AddShowFlyout.IsOpen = false; FavShowData show = new FavShowData(new ShowData { Name = selectedShow.Key, Url = selectedShow.Value }, true); _setti.TvShows.Add(show); Stats.TrackAction(Stats.TrackActivity.ShowAdd); show.AddToDatabase(Database.DatabaseWriter.db); } } }
private void UpdateCategoriesForShow(FavShowData show, List <String> categories) { categories.Add("all"); //Check existing cats foreach (var cat in _categories) { if (!cat.Setting.Enabled) { continue; } var vm = cat.Shows.FirstOrDefault(v => v.Show == show); if (!categories.Contains(cat.Title) && vm != null) //should not be there, but is there { cat.RemoveShow(vm); } else if (categories.Contains(cat.Title) && vm == null) //should be there, but isn't { cat.AddShow(new ShowTileViewModel(show)); } else { cat.Sort(); } } //Remove empty cats or disabled cats _categories.Where(c => !c.Shows.Any() || !c.Setting.Enabled).ToList().ForEach(c => _categories.Remove(c)); //Add non existing cats foreach (var cat in categories) { if (_categories.Any(c => c.Title == cat)) { continue; } var settings = Settings.Instance.CategorySettings.First(s => s.Title == cat); if (!settings.Enabled) { continue; } var newCat = new ShowCategory(); newCat.Title = cat; newCat.Setting = settings; newCat.AddShow(new ShowTileViewModel(show)); _categories.Add(newCat); } _categories.Sort(CategoryComparer); }
public ShowTileViewModel(FavShowData show) { _dispatcher = Dispatcher.CurrentDispatcher; _show = show; // _showViewModel = new ShowViewModel(_show); Title = _show.Name; IsLoadingVisible = (_show.IsLoading) ? Visibility.Visible : Visibility.Collapsed; RecalcText(); RecalcNextPrevEpText(); Background = !string.IsNullOrWhiteSpace(_show.Cover) ? new CachedImage(_show.Cover) : null; _show.PropertyChanged += _show_PropertyChanged; }
private async void ShowDelete(object sender, RoutedEventArgs e) { var res = await this.ShowMessageAsync("Remove Show?", "Do you really want to remove this show from your favorites?", MessageDialogStyle.AffirmativeAndNegative, new MetroDialogSettings { AffirmativeButtonText = "Yes", NegativeButtonText = "No", AnimateShow = false, AnimateHide = false }); if (res == MessageDialogResult.Affirmative) { FavShowData show = ((ShowViewModel)ShowGrid.DataContext).Show; _setti.TvShows.Remove(show); show.RemoveFromDatabase(Database.DatabaseWriter.db); SwitchPage(0); } }
public ShowTileViewModel(FavShowData show) { _dispatcher = Dispatcher.CurrentDispatcher; _show = show; // _showViewModel = new ShowViewModel(_show); Title = _show.Name; IsLoadingVisible = (_show.IsLoading) ? Visibility.Visible : Visibility.Collapsed; RecalcText(); if (!String.IsNullOrWhiteSpace(_show.Cover)) { Background = new CachedBitmap(_show.Cover); } else { Background = null; } _show.PropertyChanged += _show_PropertyChanged; }
private void UpdateCategoriesForShow(FavShowData show, List <String> categories) { categories.Add("all"); //Check existing cats foreach (var cat in _categories) { var vm = cat.Shows.FirstOrDefault(v => v.Show == show); if (!categories.Contains(cat.Title) && vm != null) //should not be there, but is there { cat.Shows.Remove(vm); } else if (categories.Contains(cat.Title) && vm == null) //should be there, but isn't { cat.Shows.Add(new ShowTileViewModel(show)); cat.Shows.Sort(CategoryInnerOrders[cat.Title]); } } //Remove empty cats _categories.Where(c => !c.Shows.Any()).ToList().ForEach(c => _categories.Remove(c)); //Add non existing cats foreach (var cat in categories) { if (_categories.Any(c => c.Title == cat)) { continue; } var newCat = new ShowCategory(); newCat.Title = cat; newCat.Description = CategoryDescriptions[cat]; newCat.Shows.Add(new ShowTileViewModel(show)); _categories.Add(newCat); } _categories.Sort(CategoryComparer); }
public ShowViewModel(FavShowData show) { _show = show; _dispatcher = Dispatcher.CurrentDispatcher; show.Seasons.CollectionChanged += UpdateSeasons; show.NonSeasons.CollectionChanged += UpdateNonSeasons; _lisSeasons = new ObservableCollection <SeasonViewModel>(); _lisNonSeasons = new ObservableCollection <DownloadData>(); Cover = !string.IsNullOrWhiteSpace(_show.Cover) ? new CachedImage(_show.Cover) : null; Description = (_show.Seasons.Any(s => s.Episodes.Any(e => e.Downloads.Any()))) ? _show.Seasons.First(s => s.Episodes.Any(e => e.Downloads.Any())).Episodes.First(e => e.Downloads.Any()).Downloads.First().Upload.Season.Description : ""; foreach (FavSeasonData favSeasonData in show.Seasons) { var x = new SeasonViewModel(favSeasonData); _lisSeasons.Add(x); } _lisSeasons.Sort(SeasonComparer); var first = _lisSeasons.FirstOrDefault(); if (first != null) { first.IsExpanded = true; } foreach (DownloadData nonSeason in show.NonSeasons) { _lisNonSeasons.Add(nonSeason); } UnmarkAllCommand = new SimpleCommand <object, object>(o => { foreach (var season in Show.Seasons) { foreach (var episode in season.Episodes) { episode.Downloaded = false; episode.Watched = false; } } }); MarkAllDownloadedCommand = new SimpleCommand <object, object>(o => { foreach (var season in Show.Seasons) { foreach (var episode in season.Episodes) { episode.Downloaded = true; //episode.Watched = false; //not sure here } } }); MarkAllWatchedCommand = new SimpleCommand <object, object>(o => { foreach (var season in Show.Seasons) { foreach (var episode in season.Episodes) { episode.Downloaded = true; episode.Watched = true; } } }); DownloadCommand = new SimpleCommand <object, String>(s => { for (int i = 0; i < 10; i++) { try { Clipboard.SetText(s); Clipboard.Flush(); return; } catch { //nah } Thread.Sleep(10); } MessageBox.Show("Couldn't Copy link to clipboard.\n" + s); }); }