コード例 #1
0
        public void FindByName_ShowInDB_ReturnsShow()
        {
            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "FindByName_ShowInDB_ReturnsShow")
                          .Options;
            TVShow show1 = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };
            TVShow show2 = new TVShow()
            {
                SeriesId   = 328487,
                SeriesName = "The Orville"
            };

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                context.Database.EnsureCreated();
                service.Add(show1);
                service.Add(show2);
            }
            using (var context = new EpisodeContext(options)) {
                var    service = new TVShowService(context);
                TVShow result  = service.FindByName("marvels daredevil");
                Assert.Equal(2, context.Shows.Count());
                Assert.Equal("Marvel's Daredevil", result.SeriesName);
            }
        }
コード例 #2
0
 public IndividualShowMenu(EpisodeContext context, RenamerFacade facade, TVShowService showService, TVShow show)
 {
     Context     = context;
     Facade      = facade;
     ShowService = showService;
     Show        = show;
 }
コード例 #3
0
        public void GetSeriesIdsNotInDatabase_IdsNotPresent_ReturnsList()
        {
            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "GetSeriesIdsNotInDatabase_IdsNotPresent_ReturnsList")
                          .Options;
            TVShow show1 = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                service.Add(show1);
            }
            List <int> seriesIdsToCheck = new List <int>()
            {
                134, 16690, 281662, 300000
            };
            int expectedCount = 3;

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                var result  = service.GetSeriesIdsNotInDatabase(seriesIdsToCheck);

                Assert.Equal(expectedCount, result.Count);
                Assert.Equal(0, result.Find(c => c == 281662));
            }
        }
コード例 #4
0
        public void Add_ShowInDB_DoesNotWriteToDB()
        {
            var options2 = new DbContextOptionsBuilder <EpisodeContext>()
                           .UseInMemoryDatabase(databaseName: "Add_ShowInDB_DoesNotWriteToDB")
                           .Options;
            TVShow show = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };
            TVShow sameShow = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Beastie"
            };

            using (var context = new EpisodeContext(options2)) {
                var service = new TVShowService(context);
                service.Add(show);
                service.Add(sameShow);
            }
            using (var context = new EpisodeContext(options2)) {
                // Assert.Equal("Not real", context.Shows.First().SeriesNamePreferred);
                var shows = context.Shows.Where(b => b.Id >= 0);
                foreach (var s in shows)
                {
                    output.WriteLine($"{s.Id}: SeriesId: {s.SeriesId}; Name: {s.SeriesName}");
                }
                Assert.Equal(1, context.Shows.Count());
                Assert.Equal("Daredevil", context.Shows.Single().SeriesNamePreferred);
            }
        }
コード例 #5
0
        public void GetSeriesIdsNotInDatabase_AllIdsPresent_ReturnsList()
        {
            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "GetSeriesIdsNotInDatabase_AllIdsPresent_ReturnsList")
                          .Options;
            TVShow show1 = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };
            TVShow show2 = new TVShow()
            {
                SeriesId   = 328487,
                SeriesName = "The Orville"
            };

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                service.Add(show1);
                service.Add(show2);
            }
            List <int> seriesIdsToCheck = new List <int>()
            {
                281662, 328487
            };
            int expectedCount = 0;

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                var result  = service.GetSeriesIdsNotInDatabase(seriesIdsToCheck);

                Assert.Equal(expectedCount, result.Count);
            }
        }
コード例 #6
0
        private TVShowService CreateTVShowService()
        {
            var userID  = User.Identity.GetUserId();
            var service = new TVShowService(userID);

            return(service);
        }
コード例 #7
0
        public IHttpActionResult Get(string title)
        {
            TVShowService tVShowService = CreateTVShowService();
            var           show          = tVShowService.GetTVShowsByName(title);

            return(Ok(show));
        }
コード例 #8
0
        public IHttpActionResult Get()
        {
            TVShowService tVShowService = CreateTVShowService();
            var           shows         = tVShowService.GetShows();

            return(Ok(shows));
        }
コード例 #9
0
        //private ApplicationDbContext _db = new ApplicationDbContext();
        // GET: TVShow
        public ActionResult Index()
        {
            var userID  = User.Identity.GetUserId();
            var service = new TVShowService(userID);
            var model   = service.GetTVShows();

            return(View(model));
        }
コード例 #10
0
        public void FindByEpisodeForComparingDto_EpInDB_ReturnsEp()
        {
            TVShow show = new TVShow()
            {
                SeriesId   = 328487,
                SeriesName = "The Orville"
            };
            Episode ep1 = new Episode()
            {
                SeriesId           = 328487,
                TVDBEpisodeId      = 6089488,
                Season             = 1,
                AiredEpisodeNumber = 1,
                EpisodeName        = "Old Wounds"
            };
            Episode ep2 = new Episode()
            {
                SeriesId           = 328487,
                TVDBEpisodeId      = 6123044,
                Season             = 1,
                AiredEpisodeNumber = 2,
                EpisodeName        = "Command Performance"
            };

            EpisodeForComparingDto epDto = new EpisodeForComparingDto()
            {
                SeriesName            = "the orville",
                SeasonNumber          = 1,
                EpisodeNumberInSeason = 1
            };

            string expectedEpisodeName = "Old Wounds";

            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "FindByEpisodeForComparingDto_EpInDB_ReturnsEp")
                          .Options;


            using (var context = new EpisodeContext(options)) {
                var service   = new EpisodeService(context);
                var TVService = new TVShowService(context);
                TVService.Add(show);
                service.Add(ep1);
                service.Add(ep2);
            }

            using (var context = new EpisodeContext(options)) {
                var     service = new EpisodeService(context);
                Episode result  = service.FindByEpisodeForComparingDto(epDto);
                Assert.NotNull(result);
                Assert.Equal(expectedEpisodeName, result.EpisodeName);
            }
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: ptgullas/EpisodeRenamer
        static async Task Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console()
                         .WriteTo.File("c:\\temp\\logs\\renamerLog.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();
            Log.Information("Started log on {a}", DateTime.Now.ToLongTimeString());

            SetUpVT100();

            string projectRoot = AppContext.BaseDirectory.Substring(0, AppContext.BaseDirectory.LastIndexOf(@"\bin"));
            // PrintDirectories(appRoot);

            var builder = new ConfigurationBuilder()
                          .SetBasePath(projectRoot)
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            // IConfigurationRoot configuration = builder.Build();
            Configuration = builder.Build();

            var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();

            var httpClientFactory = serviceProvider.GetService <IHttpClientFactory>();

            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseSqlite(Configuration.GetConnectionString("connectionString"))
                          .Options;
            var context = new EpisodeContext(options);

            TVDBRetrieverService retrieverService = new TVDBRetrieverService(httpClientFactory);
            TVShowService        showService      = new TVShowService(context);
            EpisodeService       epService        = new EpisodeService(context);
            LocalMediaService    localService     = new LocalMediaService(Configuration.GetSection("LocalMedia").GetValue <string>("directoryPath"));
            string tvdbInfoPath = GetTVDBInfoFilePath();
            RenamePrompterConsole prompterConsole = new RenamePrompterConsole();
            RenamerFacade         facade          = new RenamerFacade(retrieverService, showService, epService, localService, context, prompterConsole, tvdbInfoPath);

            MainMenu mainMenu = new MainMenu(facade, context, showService);
            await mainMenu.DisplayMenu();

            // await DisplayMenuAndProcessUserInput(facade);
            // SetUpAutomapper();

            // GetNewToken(httpClientFactory);

            // GetApiKey();
            //ReadTVDBInfo();
            // FindSampleShow(context);
            // PauseForInput();
            // Console.WriteLine("Adding show");
            //AddSampleShow(context);
        }
コード例 #12
0
        public void AddEpisodeToShow_ShowIsInDB_AddsEp()
        {
            TVShow show = new TVShow()
            {
                SeriesId   = 328487,
                SeriesName = "The Orville"
            };

            Episode ep1 = new Episode()
            {
                SeriesId           = 328487,
                TVDBEpisodeId      = 6089488,
                Season             = 1,
                AiredEpisodeNumber = 1,
                EpisodeName        = "Old Wounds",
                LastUpdated        = DateTimeOffset.FromUnixTimeMilliseconds(1527457806).DateTime.ToLocalTime()
            };

            int    expectedEpisodeId   = 6089488;
            string expectedEpisodeName = "Old Wounds";
            var    options             = new DbContextOptionsBuilder <EpisodeContext>()
                                         .UseInMemoryDatabase(databaseName: "AddEpisodeToShow_ShowIsInDB_AddsEp")
                                         .Options;

            // Act
            using (var context = new EpisodeContext(options)) {
                var service   = new EpisodeService(context);
                var TVService = new TVShowService(context);
                TVService.Add(show);

                service.AddEpisodeToShow(ep1);
            }

            using (var context = new EpisodeContext(options)) {
                var service = new EpisodeService(context);
                var result  = context.Episodes.FirstOrDefault(e => e.TVDBEpisodeId == expectedEpisodeId);

                Assert.NotNull(result);
                Assert.Equal(expectedEpisodeName, result.EpisodeName);
            }
        }
コード例 #13
0
        public void Add_ShowNotInDB_WritesToDB()
        {
            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "Add_ShowNotInDB_WritesToDB")
                          .Options;
            TVShow show = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "The Orville",
                SeriesNamePreferred = "Orville"
            };

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                service.Add(show);
            }
            using (var context = new EpisodeContext(options)) {
                Assert.Equal(1, context.Shows.Count());
                Assert.Equal("Orville", context.Shows.Single().SeriesNamePreferred);
            }
        }
コード例 #14
0
        public void FindByEpisodeForComparingDto_EpNotInDB_ReturnsNull()
        {
            TVShow show = new TVShow()
            {
                SeriesId   = 328487,
                SeriesName = "The Orville"
            };
            Episode ep1 = new Episode()
            {
                SeriesId           = 328487,
                TVDBEpisodeId      = 6089488,
                Season             = 1,
                AiredEpisodeNumber = 1,
                EpisodeName        = "Old Wounds"
            };

            EpisodeForComparingDto epDto = new EpisodeForComparingDto()
            {
                SeriesName            = "the chilling adventures of sabrina",
                SeasonNumber          = 1,
                EpisodeNumberInSeason = 1
            };

            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "FindByEpisodeForComparingDto_EpNotInDB_ReturnsNull")
                          .Options;

            using (var context = new EpisodeContext(options)) {
                var service   = new EpisodeService(context);
                var TVService = new TVShowService(context);
                TVService.Add(show);
                service.Add(ep1);
            }

            using (var context = new EpisodeContext(options)) {
                var     service = new EpisodeService(context);
                Episode result  = service.FindByEpisodeForComparingDto(epDto);
                Assert.Null(result);
            }
        }
コード例 #15
0
        public void FindByName_ShowNotInDB_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <EpisodeContext>()
                          .UseInMemoryDatabase(databaseName: "FindByName_ShowNotInDB_ReturnsNull")
                          .Options;
            TVShow show1 = new TVShow()
            {
                SeriesId            = 281662,
                SeriesName          = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };

            using (var context = new EpisodeContext(options)) {
                var service = new TVShowService(context);
                service.Add(show1);
            }
            using (var context = new EpisodeContext(options)) {
                var    service = new TVShowService(context);
                TVShow result  = service.FindByName("Counterpart");
                Assert.Null(result);
            }
        }
コード例 #16
0
ファイル: MainMenu.cs プロジェクト: ptgullas/EpisodeRenamer
 public MainMenu(RenamerFacade inputFacade, EpisodeContext context, TVShowService showService)
 {
     Facade      = inputFacade;
     Context     = context;
     ShowService = showService;
 }
コード例 #17
0
        private TVShowService CreateTVShowService()
        {
            var noteService = new TVShowService();

            return(noteService);
        }
コード例 #18
0
 public TVShowMenu(EpisodeContext context, RenamerFacade facade, TVShowService showService)
 {
     Context     = context;
     Facade      = facade;
     ShowService = showService;
 }