private async void appBarButtonRefresh_Click(object sender, RoutedEventArgs e)
        {
            var tvShowLibraryList = await ConnectionHelper.ExecuteRequest(_remote.Host, _remote.Port, _remote.User, _remote.Pass, JsonHelper.JsonCommandVideoLibraryGetTVshows());

            if (tvShowLibraryList != "statusError" && tvShowLibraryList != "connectionError")
            {
                var tvShowList = GetInformationHelper.getTvShowLibrary(tvShowLibraryList);

                if (tvShowList != null)
                {
                    // clear the database
                    deleteTvShow();

                    using (var db = new TvShowContext())
                    {
                        try
                        {
                            db.TvShows.AddRange(tvShowList);
                            db.SaveChanges();
                            loadTvShow();
                        }
                        catch (Exception ex)
                        {
                            Debug.WriteLine(ex.Message);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void PopulateTestDatabase(DbContextOptions <TvShowContext> options, int numberOfTvShowsToPopulate, int numberOfCastMembersPerTvShow = 0)
        {
            using (var context = new TvShowContext(options))
            {
                for (int iTvShow = 1; iTvShow <= numberOfTvShowsToPopulate; iTvShow++)
                {
                    var tvShow = new TvShow()
                    {
                        Id = iTvShow, Name = "Tv Show" + iTvShow
                    };
                    var cast = new List <CastMember>();
                    for (int iCast = 1; iCast <= numberOfCastMembersPerTvShow; iCast++)
                    {
                        var id     = Int32.Parse(iTvShow.ToString() + iCast.ToString());
                        var member = new CastMember()
                        {
                            Id       = id,
                            Name     = "Cast " + iCast,
                            Birthday = DateTime.Now.AddYears(-((numberOfCastMembersPerTvShow - iCast) * 10)),
                            TvShow   = tvShow
                        };
                        context.CastMembers.Add(member);
                        cast.Add(member);
                    }
                    tvShow.Cast = cast;
                    context.TvShows.Add(tvShow);
                }

                context.SaveChanges();
            }
        }
Beispiel #3
0
        public void TestUpdatesWhenTvShowAlreadyExistsInTheDatabaseOrAddsOtherwise()
        {
            var tvShows = new List <TvMazeTvShow>()
            {
                new TvMazeTvShow()
                {
                    Id = 1, Name = "Name 1"
                },
                new TvMazeTvShow()
                {
                    Id = 2, Name = "Name 2"
                },
                new TvMazeTvShow()
                {
                    Id = 3, Name = "Name 3"
                }
            };
            var mockRepo = new Mock <ITvMazeApiRepository>();

            mockRepo.Setup(repo => repo.GetTvShows()).Returns(tvShows);

            var options = BuildContextOptions("TestUpdatesWhenTvShowAlreadyExistsInTheDatabaseOrAddsOtherwise");

            using (var context = new TvShowContext(options))
            {
                context.TvShows.AddRange(new List <TvShow>()
                {
                    new TvShow()
                    {
                        Id = 1, Name = "Old Name 1"
                    },
                    new TvShow()
                    {
                        Id = 2, Name = "Old Name 2"
                    }
                });

                context.SaveChanges();
            }

            using (var context = new TvShowContext(options))
            {
                var populator = new DataPopulator(mockRepo.Object, context);
                var result    = populator.PopulateTvShows();

                Assert.True(result.Successful);
                Assert.Equal(1, result.Added);
                Assert.Equal(2, result.Changed);
                Assert.NotEmpty(context.TvShows);

                Assert.Equal(1, context.TvShows.ToList()[0].Id);
                Assert.Equal("Name 1", context.TvShows.ToList()[0].Name);

                Assert.Equal(2, context.TvShows.ToList()[1].Id);
                Assert.Equal("Name 2", context.TvShows.ToList()[1].Name);

                Assert.Equal(3, context.TvShows.ToList()[2].Id);
                Assert.Equal("Name 3", context.TvShows.ToList()[2].Name);
            }
        }
        // delete all tvshows in database
        private void deleteTvShow()
        {
            using (var db = new TvShowContext())
            {
                try
                {
                    db.TvShows.RemoveRange(db.TvShows.ToList());

                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }
        }
Beispiel #5
0
        public PopulateResult PopulateTvShows()
        {
            var result = new PopulateResult()
            {
                Successful = true
            };

            try
            {
                var tvShowsMazeApi = _mazeApiRepository.GetTvShows();
                foreach (var tvShow in tvShowsMazeApi.Select(t => new TvShow()
                {
                    Id = t.Id, Name = t.Name
                }))
                {
                    var existingTvShow = _db.TvShows.Find(tvShow.Id);
                    if (existingTvShow == null)
                    {
                        result.Added++;
                        _db.TvShows.Add(tvShow);
                    }
                    else
                    {
                        result.Changed++;
                        existingTvShow.Name = tvShow.Name;
                    }
                }

                _db.SaveChanges();
            }
            catch (TvMazeApiException e)
            {
                result.Added      = 0;
                result.Changed    = 0;
                result.Successful = false;
                result.Error      = e.Message;
            }
            return(result);
        }