예제 #1
0
        private static int InsertEpisodesToDatabase(string connectionString, string seriesLanguage, int seasonID, List <WikiEpisode> episodeList)
        {
            int episodesAdded      = 0;
            int episodeTitlesAdded = 0;

            SqlDataAccess sqlDataAccess = new SqlDataAccess();

            sqlDataAccess.GetConnectionString(connectionString);

            string insertEpisodeSQL = @"CALL Series.usp_Insert_Episode(@SeriesID, @SeasonNumber, @episodeNumberInSeries, @episodeNumberInSeason, @originalAirDate)";

            for (int i = 0; i < episodeList.Count; i++)
            {
                WikiEpisode currentEpisode = episodeList[i];

                episodesAdded += sqlDataAccess.SaveData <WikiEpisode>(insertEpisodeSQL, currentEpisode);

                string retrieveEpisodeIDSQL = $"SELECT * FROM series.uf_retrieve_episodeid({ seasonID }, '{ episodeList[i].episodeNumberInSeries }')";
                int    episodeID            = Convert.ToInt32(sqlDataAccess.RetrieveData(retrieveEpisodeIDSQL));

                //Add English Episode
                episodeTitlesAdded += InsertEpisodeTitle(connectionString, episodeID, "ENG", currentEpisode.title);

                if (seriesLanguage.Equals("Japanese"))
                {
                    episodeTitlesAdded += InsertEpisodeTitle(connectionString, episodeID, "RMJ", currentEpisode.titleRomaji);
                    episodeTitlesAdded += InsertEpisodeTitle(connectionString, episodeID, "JPN", currentEpisode.titleJapanese);
                }
            }

            return(episodesAdded);
        }
예제 #2
0
        private static void AssignValueToEpisode(WikiEpisode episode, string episodeKey, string episodeValue, int seriesID, int seasonNumber)
        {
            episode.SeriesID     = seriesID;
            episode.SeasonNumber = seasonNumber;

            switch (episodeKey)
            {
            case "EpisodeNumber":
                episode.episodeNumberInSeries = specialEpisodeNumber(episodeValue);
                break;

            case "EpisodeNumber2":
                episode.episodeNumberInSeason = specialEpisodeNumber(episodeValue);
                break;

            case "Title":
                episode.title = episodeValue;
                break;

            case "TranslitTitle":
                episode.titleRomaji = episodeValue;
                break;

            case "NativeTitle":
                episode.titleJapanese = episodeValue;
                break;

            case "OriginalAirDate":
                episode.originalAirDate = ParseWikiDate(episodeValue);
                break;

            default:
                break;
            }
        }
예제 #3
0
        private static void CollectEpisodeDetails(WikiEpisode episode, string readerLine, int seriesID, int seasonNumber)
        {
            string[] partialLines = readerLine.Split('=');

            string episodeKey   = ParseWikitext(partialLines[0]);
            string episodeValue = ParseWikitext(partialLines[1]);

            AssignValueToEpisode(episode, episodeKey, episodeValue, seriesID, seasonNumber);
        }