コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Naam,DatumVanPublicatie,Genre,AantalAflevering")] TvShows tvShows)
        {
            if (id != tvShows.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(tvShows);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TvShowsExists(tvShows.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(tvShows));
        }
コード例 #2
0
        private void AddShow()
        {
            var newShow = TvShow.NewTvShow(SeriesID);

            TvShows.Add(newShow);
            SelectedShow = newShow;
        }
コード例 #3
0
 private void AddTvShows(IEnumerable <string> tvShows)
 {
     foreach (string path in tvShows)
     {
         ITvShowViewModel newTvShow = _viewModelFactory.GetTvShow(path);
         TvShows.Add(newTvShow);
     }
 }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            TvShows tvShows = db.TvShows.Find(id);

            db.TvShows.Remove(tvShows);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
 private void RemoveTvShows(IEnumerable <string> tvShows)
 {
     foreach (string path in tvShows)
     {
         ITvShowViewModel tvShowToRemove = TvShows.First(show => show.Path == path);
         TvShows.Remove(tvShowToRemove);
     }
 }
コード例 #6
0
        /// <summary>
        /// Orders the tv show array by the passed predicate in ascending.
        /// </summary>
        /// <param name="predicate"></param>
        private void OrderBy(Func <TvShow, object> predicate)
        {
            DisplayedTvShows.Clear();
            foreach (var movie in TvShows.OrderBy(predicate))
            {
                DisplayedTvShows.Add(movie);
            }

            RaisePropertyChanged(nameof(DisplayedTvShows));
        }
コード例 #7
0
 public ActionResult Edit([Bind(Include = "TvShowsID,Genre,TVName,DirectorFirstName,DirectorLastName,Produced,MovieID")] TvShows tvShows)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tvShows).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.MovieID = new SelectList(db.Movies, "MovieID", "Genre", tvShows.MovieID);
     return(View(tvShows));
 }
コード例 #8
0
        public async Task <IActionResult> Create([Bind("Id,Naam,DatumVanPublicatie,Genre,AantalAflevering")] TvShows tvShows)
        {
            if (ModelState.IsValid)
            {
                _context.Add(tvShows);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tvShows));
        }
コード例 #9
0
        // GET: TvShows/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TvShows tvShows = db.TvShows.Find(id);

            if (tvShows == null)
            {
                return(HttpNotFound());
            }
            return(View(tvShows));
        }
コード例 #10
0
        public TvShows DisplayTvShows()
        {
            TvShows AllShows = new TvShows();

            //Define some variable to store data temporarily
            var tvId    = new List <int>();
            var TvShows = new List <string>();
            var Ratings = new List <int>();

            using (SqlConnection con = new SqlConnection(connectionString))
            {
                try
                {
                    con.Open();
                    string     Query = "SELECT * FROM JustGetCodes.dbo.My_TvShows";
                    SqlCommand cmd   = new SqlCommand(Query, con);
                    cmd.CommandType    = System.Data.CommandType.Text;
                    cmd.CommandTimeout = 0;

                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            //Make Sure that the columns heading are same as in the SQL Table

                            tvId.Add(Convert.ToInt32(sdr["TVID"]));
                            TvShows.Add(sdr["TV_Show_Name"].ToString());
                            Ratings.Add(Convert.ToInt32((sdr["Show_Ratings"])));
                        }
                    }

                    //Attach the Lists to the Model

                    AllShows.TVID        = tvId.ToArray();
                    AllShows.TvShowsName = TvShows.ToArray();
                    AllShows.Ratings     = Ratings.ToArray();
                }

                catch (Exception ex)
                {
                    throw ex;
                }

                //Close the database connection
                con.Close();
            }

            //Return the list of Tv Shows
            return(AllShows);
        }
コード例 #11
0
        // GET: TvShows/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TvShows tvShows = db.TvShows.Find(id);

            if (tvShows == null)
            {
                return(HttpNotFound());
            }
            ViewBag.MovieID = new SelectList(db.Movies, "MovieID", "Genre", tvShows.MovieID);
            return(View(tvShows));
        }
コード例 #12
0
        public void GivenAJsonString_WhenGettingAllTvShows_ItShouldReturnAListOfShows()
        {
            var parameters = new GetTvShowsParams
            {
                Properties = new [] { TvShowProperties.Title }
            };

            var mock     = GetKodiServiceMock(parameters);
            var service  = mock.Object;
            var actual   = service.GetTvShows(parameters, "UnitTests");
            var expected = TvShows.GetList();

            Assert.IsInstanceOf <JsonRpcResponse <GetTvShowsResponse> >(actual);
            Assert.That(actual.Result.TvShows.Count, Is.EqualTo(expected.TvShows.Count));
            AssertThatPropertyValuesAreEquals(actual.Result, expected);
        }
コード例 #13
0
        public void GivenAJsonString_WhenGettingATvShowByTvShowId_WithAValidTvShowId_ItShouldReturnATvShow()
        {
            const TvShows.TestSet id = TvShows.TestSet.TheAmericans;

            var parameters = new GetTvShowDetailsParams
            {
                TvShowId   = (int)id,
                Properties = TvShowProperties.All()
            };

            var mock    = GetKodiServiceMock(parameters);
            var service = mock.Object;

            var actual   = service.GetTvShowDetails(parameters, "UnitTests");
            var expected = TvShows.GetTvShow(id);

            Assert.IsInstanceOf <JsonRpcResponse <GetTvShowDetailsResponse> >(actual);
            Assert.That(actual.Result.TvShowDetails.TvShowId, Is.EqualTo(expected.TvShowDetails.TvShowId));
            AssertThatPropertyValuesAreEquals(actual.Result.TvShowDetails, expected.TvShowDetails);
        }
コード例 #14
0
        private void SourceFoldersCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:
                AddTvShows(e.NewItems.Cast <string>());
                break;

            case NotifyCollectionChangedAction.Remove:
                RemoveTvShows(e.OldItems.Cast <string>());
                break;

            case NotifyCollectionChangedAction.Replace:
                RemoveTvShows(e.OldItems.Cast <string>());
                AddTvShows(e.NewItems.Cast <string>());
                break;

            case NotifyCollectionChangedAction.Reset:
                TvShows.Clear();
                break;
            }
        }
コード例 #15
0
        private async void LoadTvShowsAsync()
        {
            if (IsLoading)
            {
                return;
            }

            IsLoading = true;
            TvShows.Clear();

            if (App.Context.Connection.Xbmc.IsMocked)
            {
                var videoDetailsTvShow = new VideoDetailsTvShow
                {
                    TvShowId = 1,
                    Title    = "Saturday Night Live",
                    Art      = new MediaArtwork {
                        Banner = "http://thetvdb.com/banners/_cache/graphical/76177-g5.jpg"
                    }
                };

                TvShows.Add(new ExtendedVideoDetailsTvShow(videoDetailsTvShow));

                IsLoading = false;
                return;
            }

            try
            {
                var tvshows = await App.Context.Connection.Xbmc.VideoLibrary.GetTvShowsAsync(
                    fields : new[]
                {
                    VideoFieldsTVShow.art,
                    VideoFieldsTVShow.title,
                    VideoFieldsTVShow.plot,
                    VideoFieldsTVShow.episode,
                    VideoFieldsTVShow.watchedepisodes,
                    VideoFieldsTVShow.playcount
                });

                if (tvshows.TvShows == null || !tvshows.TvShows.Any())
                {
                    MessageBox.Show(AppResources.Page_Tv_Shows_Message_No_Tv_Show, AppResources.ApplicationTitle, MessageBoxButton.OK);

                    if (NavigationService.CanGoBack)
                    {
                        NavigationService.GoBack();
                    }

                    return;
                }

                var items = tvshows.TvShows.Where(s => _keepWatched || (!_keepWatched && !s.IsWatched))
                            .OrderBy(s => s.Label)
                            .Select(s => new ExtendedVideoDetailsTvShow(s));

                foreach (var extendedVideoDetailsTvShow in items)
                {
                    TvShows.Add(extendedVideoDetailsTvShow);
                }
            }
            catch (Exception ex)
            {
                App.TrackException(ex);
                MessageBox.Show(AppResources.Global_Error_Message, AppResources.ApplicationTitle, MessageBoxButton.OK);
            }
            finally
            {
                IsLoading = false;
            }
        }
コード例 #16
0
        /// <summary>
        /// Videoes the library callback manager.
        /// </summary>
        /// <param name="requestState">State of the request.</param>
        private void VideoLibraryCallbackManager(XRequestState requestState)
        {
            object returnObject = null;

            VideoLibrary operation = GetMethod(requestState.RequestOperation);

            var query = JObject.Parse(requestState.ResponseData);
            JObject result = (JObject)query["result"];

            switch (operation)
            {
                case VideoLibrary.Clean:
                    returnObject = result.Values(0).ToString();
                    break;

                case VideoLibrary.Export:
                    break;

                case VideoLibrary.GetEpisodeDetails:
                    Episode episode = null;
                    if (result["episodedetails"] != null)
                    {
                        JObject item = (JObject)result["episodedetails"];
                        episode = Episode.FromJsonObject(item);

                    }
                    returnObject = episode;
                    break;

                case VideoLibrary.GetEpisodes:
                case VideoLibrary.GetRecentlyAddedEpisodes:
                    var episodes = new Episodes();
                    episodes.LoadFromJsonObject(result);
                    returnObject = episodes;
                    break;

                case VideoLibrary.GetGenres:
                    var genres = new Genres();
                    genres.LoadFromJsonObject(result);
                    returnObject = genres;
                    break;

                case VideoLibrary.GetMovieDetails:
                    Movie movie = null;
                    if (result["moviedetails"] != null)
                    {
                        JObject item = (JObject)result["moviedetails"];
                        movie = Movie.FromJsonObject(item);
                    }
                    returnObject = movie;
                    break;

                case VideoLibrary.GetMovies:
                case VideoLibrary.GetRecentlyAddedMovies:
                    var movies = new Movies();
                    movies.LoadFromJsonObject(result);
                    returnObject = movies;
                    break;

                case VideoLibrary.GetMovieSetDetails:
                    MovieSetExtended movieSet = null;
                    if (result["setdetails"] != null)
                    {
                        JObject item = (JObject)result["setdetails"];
                        movieSet = MovieSetExtended.FromJsonObject(item);
                    }
                    returnObject = movieSet;
                    break;

                case VideoLibrary.GetMovieSets:
                    var movieSets = new MovieSets();
                    movieSets.LoadFromJsonObject(result);
                    returnObject = movieSets;
                    break;

                case VideoLibrary.GetMusicVideoDetails:
                    MusicVideo musicVideo = null;
                    if (result["musicvideodetails"] != null)
                    {
                        JObject item = (JObject)result["musicvideodetails"];
                        musicVideo = MusicVideo.FromJsonObject(item);
                    }
                    returnObject = musicVideo;
                    break;

                case VideoLibrary.GetMusicVideos:
                case VideoLibrary.GetRecentlyAddedMusicVideos:
                    var musicVideos = new MusicVideos();
                    musicVideos.LoadFromJsonObject(result);
                    returnObject = musicVideos;
                    break;

                case VideoLibrary.GetSeasons:
                    var seasons = new Seasons();
                    seasons.LoadFromJsonObject(result);
                    returnObject = seasons;
                    break;

                case VideoLibrary.GetTVShowDetails:
                    TvShow tvShow = null;
                    if (result["tvshowdetails"] != null)
                    {
                        JObject item = (JObject)result["tvshowdetails"];
                        tvShow = TvShow.FromJsonObject(item);
                    }
                    returnObject = tvShow;
                    break;

                case VideoLibrary.GetTVShows:
                    var tvShows = new TvShows();
                    tvShows.LoadFromJsonObject(result);
                    returnObject = tvShows;
                    break;

                case VideoLibrary.Scan:
                    returnObject = result.Values(0).ToString();
                    break;
            }

            if (requestState.UserCallback != null)
                requestState.UserCallback(returnObject);
        }
コード例 #17
0
 private void DeleteShow()
 {
     SelectedShow.DeleteCommand.Execute(null);
     TvShows.Remove(SelectedShow);
     SelectedShow = null;
 }
コード例 #18
0
        public async Task Load()
        {
            IsLoading = true;

            try
            {
                if (!TvShows.Any())
                {
                    IList <TvShow> tvShows = (await _tvShowService.GetTvShows()).ToList();
                    foreach (TvShow tvShow in tvShows.OrderBy(q => q.Name))
                    {
                        TvShows.Add(tvShow);
                    }
                }

                IList <TvShowEpisode> tvShowEpisodes = (await _tvShowService.GetContinueWatchingEpisodes()).ToList();
                foreach (TvShowEpisode tvShowEpisode in tvShowEpisodes)
                {
                    if (ContinueWatchingTvShows.All(q => q.Id != tvShowEpisode.Id))
                    {
                        ContinueWatchingTvShows.Add(tvShowEpisode);

                        TvShow correspondingTvShow = TvShows.FirstOrDefault(q => q.Id == tvShowEpisode.SeriesId);
                        if (correspondingTvShow != null)
                        {
                            tvShowEpisode.TvShow = correspondingTvShow;

                            TvShowSeason correspondingSeason =
                                correspondingTvShow.Seasons.FirstOrDefault(q => q.Id == tvShowEpisode.SeasonId);

                            if (correspondingSeason != null)
                            {
                                tvShowEpisode.Season = correspondingSeason;
                            }
                            else
                            {
                                IEnumerable <TvShowSeason> seasons =
                                    await _tvShowService.GetSeasonsBy(correspondingTvShow);

                                correspondingSeason =
                                    seasons.FirstOrDefault(q => q.Id == tvShowEpisode.SeasonId);

                                tvShowEpisode.Season = correspondingSeason;

                                await _tvShowService.GetEpisodesBy(correspondingTvShow, correspondingSeason);
                            }
                        }
                    }
                }

                OrderByName();
            }
            catch (Exception xc)
            {
                _logManager.LogError(xc, "An error occurred while loading tv shows.");
            }
            finally
            {
                IsLoading = false;
            }
        }
コード例 #19
0
        private async Task LoadTvShowsAsync(bool keepWatched)
        {
            if (IsLoading)
            {
                return;
            }

            IsLoading = true;
            TvShows.Clear();

            if (App.Context.Connection.Kodi.IsMocked)
            {
                var videoDetailsTvShow = new VideoDetailsTvShow
                {
                    TvShowId = 1,
                    Title    = "Saturday Night Live",
                    Art      = new MediaArtwork {
                        Banner = "http://thetvdb.com/banners/_cache/graphical/76177-g5.jpg"
                    }
                };

                TvShows.Add(new ExtendedVideoDetailsTvShow(videoDetailsTvShow));

                IsLoading = false;
                return;
            }

            try
            {
                var tvshows = await App.Context.Connection.Kodi.VideoLibrary.GetTvShowsAsync(
                    fields : new[]
                {
                    VideoFieldsTVShow.art,
                    VideoFieldsTVShow.title,
                    VideoFieldsTVShow.plot,
                    VideoFieldsTVShow.episode,
                    VideoFieldsTVShow.watchedepisodes,
                    VideoFieldsTVShow.playcount
                });

                if (tvshows.TvShows == null || !tvshows.TvShows.Any())
                {
                    return;
                }

                var items = tvshows.TvShows.Where(s => keepWatched || (!keepWatched && !s.IsWatched))
                            .OrderBy(s => s.Label)
                            .Select(s => new ExtendedVideoDetailsTvShow(s));

                foreach (var extendedVideoDetailsTvShow in items)
                {
                    TvShows.Add(extendedVideoDetailsTvShow);
                }
            }
            catch (Exception ex)
            {
                App.TrackException(ex);
                var dialog = new MessageDialog(_resourceLoader.GetString("GlobalErrorMessage"), _resourceLoader.GetString("ApplicationTitle"));
                await dialog.ShowAsync();
            }
            finally
            {
                IsLoading = false;
            }
        }