public override bool EditShow(int id, ShowBindingModel show) { BaseViewModel toBeChanged = views.FirstOrDefault(v => v.Id == id); BingeShow chosen = tvShows.FirstOrDefault(s => s.Id == id); if (toBeChanged != null) { views.Remove(toBeChanged); chosen.UpdateData(show); Thread save = new Thread(SaveShows); save.Start(); toBeChanged = new BingeViewModel(chosen); if (BingeEnd(toBeChanged, chosen)) { return(false); } return(true); } return(false); }
public bool NextEpisode(int id) { BingeViewModel toBeChanged = views.FirstOrDefault(v => v.Id == id); BingeShow chosen = tvShows.FirstOrDefault(s => s.Id == id); if (chosen != null) { chosen.CurrentEpisode++; toBeChanged.CurrentEpisode++; if (!AddEpisodeInfo(toBeChanged)) { chosen.CurrentEpisode = 1; chosen.CurrentSeason++; toBeChanged.CurrentEpisode = 1; toBeChanged.CurrentSeason++; if (BingeEnd(toBeChanged, chosen)) { return(false); } } return(true); } return(false); }
public override bool AddShow(ShowBindingModel show) { string urlPath = String.Format(Constants.GetSearch, GetSlug(show.Name)); SearchInfoRoot data = WebParser <SearchInfoRoot> .GetInfo(urlPath); BingeShow newShow = new BingeShow() { Id = data.data[0].id, Title = data.data[0].seriesName, CurrentEpisode = show.CurrentEpisode, CurrentSeason = show.CurrentSeason, }; BingeViewModel newView = new BingeViewModel(newShow); if (BingeEnd(newView, newShow)) { return(false); } Thread save = new Thread(AddAndSave); save.Start(newShow); views.Add(newView); return(true); }
public MainPage() { InitializeComponent(); //InitializeComponent(new Uri("ms-appx:///DeviceFamily-Mobile///MainPage.xaml", UriKind.Absolute)); _binge = new BingeViewModel(); NomText.Visibility = Visibility.Collapsed; // Refresh bing list after a new binge is added _binge.BingeCompleted += s => { ReloadHistory(); }; BingePane.DataContext = _binge; }
public void RemoveShow(int id) { BingeViewModel toBeRemoved = views.FirstOrDefault(v => v.Id == id); if (toBeRemoved != null) { views.Remove(toBeRemoved); Thread remove = new Thread(PermanentlyRemove); remove.Start(id); } }
public override void GenerateViews() { views = new ObservableCollection <BaseViewModel>(); for (int i = 0; i < tvShows.Count; i++) { BingeViewModel newModel = new BingeViewModel(tvShows[i]); AddEpisodeInfo(newModel); views.Add(newModel); } }
private bool BingeEnd(BingeViewModel model, BingeShow show) { if (!AddEpisodeInfo(model)) { if (IsOngoing(show)) { MoveToFollow(show); Thread remove = new Thread(PermanentlyRemove); remove.Start(show.Id); } else { Thread remove = new Thread(PermanentlyRemove); remove.Start(show.Id); } return(true); } return(false); }
private bool AddEpisodeInfo(BingeViewModel model) { string epPath = String.Format(Constants.GetAllEpisodes, model.Id, model.CurrentSeason); EpisodeInfoRoot ep; string totalPath = String.Format(Constants.GetTotal, model.Id); SeasonDataRoot total; try { ep = WebParser <EpisodeInfoRoot> .GetInfo(epPath); total = WebParser <SeasonDataRoot> .GetInfo(totalPath); } catch (HttpRequestException e) { if (e.HResult == 404) { return(false); } return(true); } catch (Exception) { return(false); } try { model.UpdateEpisodeInfo(ep.data, total.data); } catch (Exception) { return(false); } return(true); }