示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
        }
示例#3
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();
            RecalcNextPrevEpText();
            Background             = !string.IsNullOrWhiteSpace(_show.Cover) ? new CachedImage(_show.Cover) : null;
            _show.PropertyChanged += _show_PropertyChanged;
        }
示例#4
0
        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);
            }
        }
示例#5
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);
        }
示例#7
0
        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);
            });
        }