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
        public void TestPopulatesTvShowsInDatastore()
        {
            var tvShows = new List <TvMazeTvShow>()
            {
                new TvMazeTvShow()
                {
                    Id = 1, Name = "Name 1"
                },
                new TvMazeTvShow()
                {
                    Id = 2, Name = "Name 2"
                }
            };
            var mockRepo = new Mock <ITvMazeApiRepository>();

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

            var options = BuildContextOptions("TestPopulatesTvShowsInDatastore");

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

                Assert.True(result.Successful);
                Assert.Equal(2, result.Added);
                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);
            }
        }
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);
            }
        }
Beispiel #4
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 #5
0
        public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
        {
            using (var db = new MovieContext())
            {
                db.Database.Migrate();
            }

            using (var db = new TvShowContext())
            {
                db.Database.Migrate();
            }

            using (var db = new ArtistContext())
            {
                db.Database.Migrate();
            }

            using (var db = new RemoteContext())
            {
                db.Database.Migrate();

                // if database is empty go to remotelistpage
                if (await db.Remotes.CountAsync() == 0)
                {
                    NavigationService.Navigate(typeof(Views.RemotesListPage));
                }
                // else go to mainpage
                else
                {
                    NavigationService.Navigate(typeof(Views.MainPage));
                }
            }

            var settings       = SettingsService.Instance;
            var settingVersion = settings.SettingVersion;
            var packageVersion = Package.Current.Id.Version;

            if (settingVersion != $"{packageVersion.Major}.{packageVersion.Minor}.{packageVersion.Build}.{packageVersion.Revision}")
            {
                var updateDialog = new ContentDialog()
                {
                    Title   = $"{packageVersion.Major}.{packageVersion.Minor}.{packageVersion.Build}.{packageVersion.Revision}",
                    Content = "Thanks for all the donations, requests and bugs reported" + Environment.NewLine + Environment.NewLine +
                              "I've been really busy at this time so unfortunately, I had little time for developing mrRemote. However, a few bugs have been fixed and some requested feature has been added." + Environment.NewLine + Environment.NewLine +
                              "Go to Settings->Changelog for a complete list of the changes.",
                    PrimaryButtonText = "Continue"
                };

                await updateDialog.ShowAsync();

                settings.SettingVersion = $"{packageVersion.Major}.{packageVersion.Minor}.{packageVersion.Build}.{packageVersion.Revision}";
            }

            await Task.CompletedTask;
        }
Beispiel #6
0
        public void TestInMemoryDatabaseSetupWorks()
        {
            var options = BuildContextOptions("TestInMemoryDatabaseSetupWorks");

            PopulateTestDatabase(options, 15);

            using (var context = new TvShowContext(options))
            {
                var tvShowsCount = context.TvShows.Count();
                Assert.Equal(15, tvShowsCount);
            }
        }
Beispiel #7
0
        public void TestGetReturnsCastWithTvShows()
        {
            var options = BuildContextOptions("TestGetReturnsCastWithTvShows");

            PopulateTestDatabase(options, 1, 1);

            var context = new TvShowContext(options);

            var repository = new TvShowRepository(context);

            var tvShows = repository.Get();

            Assert.NotEmpty(tvShows.ToArray()[0].Cast);
        }
Beispiel #8
0
        public void TestGetReturnsAllTvShowsInDatabase()
        {
            var options = BuildContextOptions("TestRepositoryGetReturnsAllTvShowsInDatabase");

            PopulateTestDatabase(options, 15);

            var context = new TvShowContext(options);

            var repository = new TvShowRepository(context);

            var tvShows      = repository.Get();
            var tvShowsCount = tvShows.Count();

            Assert.Equal(15, tvShowsCount);
        }
        // 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 #10
0
        public void TestGetReturnCastInDescendingBirthdayOrder()
        {
            var options = BuildContextOptions("TestGetReturnCastInDescendingBirthdayOrder");

            PopulateTestDatabase(options, 1, 3);

            var context = new TvShowContext(options);

            var repository = new TvShowRepository(context);

            var tvShows = repository.Get();
            var cast    = tvShows.ToArray()[0].Cast;

            Assert.True(cast[0].Birthday > cast[1].Birthday);
            Assert.True(cast[1].Birthday > cast[2].Birthday);
        }
        private void textBoxSearch_TextChanged(object sender, TextChangedEventArgs e)
        {
            using (var db = new TvShowContext())
            {
                if (db.TvShows.Count() > 0)
                {
                    var query = (from p in db.TvShows where (p.Title.Contains(textBoxSearch.Text) || p.Genre.Contains(textBoxSearch.Text)) orderby p.Title select p).ToList();

                    GridViewTvShows.ItemsSource    = query;
                    relativePanelNoList.Visibility = Visibility.Collapsed;
                }
                else
                {
                    GridViewTvShows.ItemsSource    = null;
                    relativePanelNoList.Visibility = Visibility.Visible;
                }
            }
        }
        private void orderByDateAdded()
        {
            using (var db = new TvShowContext())
            {
                if (db.TvShows.Count() > 0)
                {
                    var query = (from p in db.TvShows orderby p.DateAdded descending select p).ToList();

                    GridViewTvShows.ItemsSource    = query;
                    relativePanelNoList.Visibility = Visibility.Collapsed;
                }
                else
                {
                    GridViewTvShows.ItemsSource    = null;
                    relativePanelNoList.Visibility = Visibility.Visible;
                }
            }
        }
Beispiel #13
0
        public void TestReturnsErrorMessageWhenMazeApiDoesntWork()
        {
            var mockRepo = new Mock <ITvMazeApiRepository>();

            mockRepo.Setup(repo => repo.GetTvShows()).Throws(new TvMazeApiException());

            var options = BuildContextOptions("TestReturnsErrorMessageWhenMazeApiDoesntWork");

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

                Assert.False(result.Successful);

                Assert.False(result.Error == "");
            }
        }
Beispiel #14
0
 public TvShowRepository(TvShowContext context)
 {
     _context = context;
 }
Beispiel #15
0
 public DataPopulator(ITvMazeApiRepository mazeApiRepository, TvShowContext db)
 {
     _mazeApiRepository = mazeApiRepository;
     _db = db;
 }