Пример #1
0
        private bool ConfirmAdd(TVShowFromTVDBDto show)
        {
            string response = "";
            bool   addToDb  = false;

            while (IsNotYesOrNo(response))
            {
                MenuHelpers.WriteColor($"Add ");
                MenuHelpers.WriteColor($"{show.SeriesNameTVDB} ", ConsoleColor.Yellow);
                MenuHelpers.WriteColor($"to TVDB Favorites & database? (Y/N) ");
                response = Console.ReadLine().ToUpper();
                if (response == "Y")
                {
                    addToDb = true;
                }
                else if (response == "N")
                {
                    addToDb = false;
                }
                else
                {
                    continue;
                }
            }
            return(addToDb);
        }
Пример #2
0
        private async Task DisplayResultsAndPromptToAddShow(List <TVShowFromTVDBDto> searchResults)
        {
            string userShowSelection = "INITIAL";
            string exitCharUpper     = "X";

            while (MenuHelpers.StringIsNotNumericOrExitChar(userShowSelection, exitCharUpper))
            {
                userShowSelection = DisplaySearchResults(searchResults, exitCharUpper);
                if (userShowSelection.IsNumeric())
                {
                    int userSelection = userShowSelection.ToInt();
                    int numberOfShows = searchResults.Count;
                    if ((userSelection >= 0) && (userSelection < numberOfShows))
                    {
                        TVShowFromTVDBDto selectedShow = searchResults[userSelection];
                        await ConfirmThenAddShowToDatabase(selectedShow);
                    }
                    else
                    {
                        Console.WriteLine("That's not one of the shows on the list");
                        continue;
                    }
                }
                else if (userShowSelection.ToUpper() == exitCharUpper)
                {
                    return;
                }
            }
        }
Пример #3
0
        private void AddShowToDatabase(TVShowFromTVDBDto newShowDto)
        {
            TVShow newShow = newShowDto.ToTVShow();

            newShow.IsActive = true;
            Log.Information($"Adding seriesId {newShow.SeriesId}: {newShow.SeriesName} to Shows table");
            _showService.Add(newShow);
        }
Пример #4
0
        private async Task ConfirmThenAddShowToDatabase(TVShowFromTVDBDto show)
        {
            if (ConfirmAdd(show))
            {
                await Facade.AddShowToFavoritesThenToDatabase(show);

                await Facade.PopulateEpisodesFromSeriesId(show.SeriesId);
            }
        }
Пример #5
0
        public void ConvertToTVShow_ValidShowNoPreferred_Passes()
        {
            TVShowFromTVDBDto newShow = new TVShowFromTVDBDto()
            {
                SeriesId       = 356640,
                SeriesNameTVDB = "Russian Doll"
            };

            int    expectedSeriesId   = 356640;
            string expectedSeriesName = "Russian Doll";


            var result = newShow.ToTVShow();

            Assert.Equal(expectedSeriesId, result.SeriesId);
            Assert.Equal(expectedSeriesName, result.SeriesName);
            Assert.Null(result.SeriesNamePreferred);
        }
Пример #6
0
        public void ConvertToTVShow_ValidShowWithPreferred_Passes()
        {
            TVShowFromTVDBDto newShow = new TVShowFromTVDBDto()
            {
                SeriesId            = 281662,
                SeriesNameTVDB      = "Marvel's Daredevil",
                SeriesNamePreferred = "Daredevil"
            };

            int    expectedSeriesId      = 281662;
            string expectedSeriesName    = "Marvel's Daredevil";
            string expectedPreferredName = "Daredevil";

            var result = newShow.ToTVShow();

            Assert.Equal(expectedSeriesId, result.SeriesId);
            Assert.Equal(expectedSeriesName, result.SeriesName);
            Assert.Equal(expectedPreferredName, result.SeriesNamePreferred);
        }
Пример #7
0
        public async Task <TVShowFromTVDBDto> FetchTVShow(int seriesId, string token)
        {
            Log.Information("Fetching TV Series with seriesId {a}", seriesId);
            TVShowFromTVDBDto showDto = new TVShowFromTVDBDto();
            HttpClient        client  = CreateDefaultClient(token);

            try {
                var response = await client.GetAsync(GetShowUri(seriesId));

                response.EnsureSuccessStatusCode();
                var stringResponse = await response.Content.ReadAsStringAsync();

                JsonConverter converter = new JsonConverter();
                showDto = converter.ConvertTVSeriesToDto(stringResponse);
                Log.Information("Successfully fetched TV Series {seriesId}: {showName}", seriesId, showDto.SeriesNameTVDB);
            }
            catch (Exception e) {
                Log.Error(e, "Error fetching TV Show {seriesId}", seriesId);
            }
            return(showDto);
        }
Пример #8
0
 public async Task AddShowToTVDBFavorites(TVShowFromTVDBDto showDto)
 {
     await _retrieverService.AddToTVDBFavorites(showDto.SeriesId, _tvdbInfo.Token);
 }
Пример #9
0
        public async Task AddShowToFavoritesThenToDatabase(TVShowFromTVDBDto showDto)
        {
            await AddShowToTVDBFavorites(showDto);

            AddShowToDatabase(showDto);
        }
Пример #10
0
        public async Task FetchTVShowAndAddItToDatabase(int seriesId, string token)
        {
            TVShowFromTVDBDto newShowDto = await _retrieverService.FetchTVShow(seriesId, token);

            AddShowToDatabase(newShowDto);
        }