Exemplo n.º 1
0
		public static void UpdateSchema()
		{

			VersionsRepository repVersions = new VersionsRepository();
			Versions ver = repVersions.GetByVersionType(Constants.DatabaseTypeKey);
			if (ver == null) return;

			int versionNumber = 0;
			int.TryParse(ver.VersionValue, out versionNumber);

			try
			{
				UpdateSchema_002(versionNumber);
				UpdateSchema_003(versionNumber);
				UpdateSchema_004(versionNumber);
				UpdateSchema_005(versionNumber);
				UpdateSchema_006(versionNumber);
				UpdateSchema_007(versionNumber);
				UpdateSchema_008(versionNumber);
				UpdateSchema_009(versionNumber);
				UpdateSchema_010(versionNumber);
				UpdateSchema_011(versionNumber);
				UpdateSchema_012(versionNumber);
				UpdateSchema_013(versionNumber);
				UpdateSchema_014(versionNumber);
				UpdateSchema_015(versionNumber);
				UpdateSchema_016(versionNumber);
				UpdateSchema_017(versionNumber);
				UpdateSchema_018(versionNumber);
				UpdateSchema_019(versionNumber);
				UpdateSchema_020(versionNumber);
				UpdateSchema_021(versionNumber);
				UpdateSchema_022(versionNumber);
				UpdateSchema_023(versionNumber);
				UpdateSchema_024(versionNumber);
				UpdateSchema_025(versionNumber);
				UpdateSchema_026(versionNumber);
				UpdateSchema_027(versionNumber);
				UpdateSchema_028(versionNumber);
				UpdateSchema_029(versionNumber);
				UpdateSchema_030(versionNumber);
                UpdateSchema_031(versionNumber);
                UpdateSchema_032(versionNumber);
                UpdateSchema_033(versionNumber);
                UpdateSchema_034(versionNumber);
                UpdateSchema_035(versionNumber);
                UpdateSchema_036(versionNumber);
                UpdateSchema_037(versionNumber);
                UpdateSchema_038(versionNumber);
                UpdateSchema_039(versionNumber);
                UpdateSchema_040(versionNumber);
                UpdateSchema_041(versionNumber);
            }
			catch (Exception ex)
			{
				logger.ErrorException("Error updating schema: " + ex.ToString(), ex);
			}

		}
Exemplo n.º 2
0
		public static void CreateInitialSchema()
		{
			SQLiteConnection myConn = new SQLiteConnection(GetConnectionString());
			myConn.Open(); 

			string cmd = string.Format("SELECT count(*) as NumTables FROM sqlite_master WHERE name='Versions'");
			SQLiteCommand sqCommandCheck = new SQLiteCommand(cmd);
			sqCommandCheck.Connection = myConn;
			long count = long.Parse(sqCommandCheck.ExecuteScalar().ToString());

			// if the Versions already exists, it means we have done this already
			if (count > 0) return;

			//Create all the commands to be executed
			List<string> commands = new List<string>();
			commands.AddRange(CreateTableString_Versions());
			commands.AddRange(CreateTableString_AniDB_Anime());
			commands.AddRange(CreateTableString_AniDB_Anime_Category());
			commands.AddRange(CreateTableString_AniDB_Anime_Character());
			commands.AddRange(CreateTableString_AniDB_Anime_Relation());
			commands.AddRange(CreateTableString_AniDB_Anime_Review());
			commands.AddRange(CreateTableString_AniDB_Anime_Similar());
			commands.AddRange(CreateTableString_AniDB_Anime_Tag());
			commands.AddRange(CreateTableString_AniDB_Anime_Title());
			commands.AddRange(CreateTableString_AniDB_Category());
			commands.AddRange(CreateTableString_AniDB_Character());
			commands.AddRange(CreateTableString_AniDB_Character_Seiyuu());
			commands.AddRange(CreateTableString_AniDB_Seiyuu());
			commands.AddRange(CreateTableString_AniDB_Episode());
			commands.AddRange(CreateTableString_AniDB_File());
			commands.AddRange(CreateTableString_AniDB_GroupStatus());
			commands.AddRange(CreateTableString_AniDB_ReleaseGroup());
			commands.AddRange(CreateTableString_AniDB_Review());
			commands.AddRange(CreateTableString_AniDB_Tag());
			commands.AddRange(CreateTableString_AnimeEpisode());
			commands.AddRange(CreateTableString_AnimeGroup());
			commands.AddRange(CreateTableString_AnimeSeries());
			commands.AddRange(CreateTableString_CommandRequest());
			commands.AddRange(CreateTableString_CrossRef_AniDB_Other());
			commands.AddRange(CreateTableString_CrossRef_AniDB_TvDB());
			commands.AddRange(CreateTableString_CrossRef_File_Episode());
			commands.AddRange(CreateTableString_CrossRef_Languages_AniDB_File());
			commands.AddRange(CreateTableString_CrossRef_Subtitles_AniDB_File());
			commands.AddRange(CreateTableString_FileNameHash());
			commands.AddRange(CreateTableString_Language());
			commands.AddRange(CreateTableString_ImportFolder());
			commands.AddRange(CreateTableString_ScheduledUpdate());
			commands.AddRange(CreateTableString_VideoInfo());
			commands.AddRange(CreateTableString_VideoLocal());
			commands.AddRange(CreateTableString_DuplicateFile());
			commands.AddRange(CreateTableString_GroupFilter());
			commands.AddRange(CreateTableString_GroupFilterCondition());
			commands.AddRange(CreateTableString_AniDB_Vote());
			commands.AddRange(CreateTableString_TvDB_ImageFanart());
			commands.AddRange(CreateTableString_TvDB_ImageWideBanner());
			commands.AddRange(CreateTableString_TvDB_ImagePoster());
			commands.AddRange(CreateTableString_TvDB_Episode());
			commands.AddRange(CreateTableString_TvDB_Series());
			commands.AddRange(CreateTableString_AniDB_Anime_DefaultImage());
			commands.AddRange(CreateTableString_MovieDB_Movie());
			commands.AddRange(CreateTableString_MovieDB_Poster());
			commands.AddRange(CreateTableString_MovieDB_Fanart());
			commands.AddRange(CreateTableString_JMMUser());
			commands.AddRange(CreateTableString_Trakt_Episode());
			commands.AddRange(CreateTableString_Trakt_ImagePoster());
			commands.AddRange(CreateTableString_Trakt_ImageFanart());
			commands.AddRange(CreateTableString_Trakt_Show());
			commands.AddRange(CreateTableString_Trakt_Season());
			commands.AddRange(CreateTableString_CrossRef_AniDB_Trakt());

			commands.AddRange(CreateTableString_AnimeEpisode_User());
			commands.AddRange(CreateTableString_AnimeSeries_User());
			commands.AddRange(CreateTableString_AnimeGroup_User());
			commands.AddRange(CreateTableString_VideoLocal_User());

			foreach (string cmdTable in commands)
			{
				SQLiteCommand sqCommand = new SQLiteCommand(cmdTable); 
				sqCommand.Connection = myConn;
				sqCommand.ExecuteNonQuery(); 
			}

			myConn.Close();

			logger.Trace("Creating version...");
			Versions ver1 = new Versions();
			ver1.VersionType = Constants.DatabaseTypeKey;
			ver1.VersionValue = "1";

			VersionsRepository repVer = new VersionsRepository();
			repVer.Save(ver1);
			
		}
Exemplo n.º 3
0
		private static void UpdateDatabaseVersion(int versionNumber)
		{
			VersionsRepository repVersions = new VersionsRepository();
			Versions ver = repVersions.GetByVersionType(Constants.DatabaseTypeKey);
			if (ver == null) return;

			ver.VersionValue = versionNumber.ToString();
			repVersions.Save(ver);
		}
Exemplo n.º 4
0
		public static void CreateInitialSchema()
		{
			int count = 0;

			//string sql = string.Format("select count(VERSIONS) from INFORMATION_SCHEMA where TABLE_SCHEMA = '{0}' and TABLE_NAME = 'VERSIONS' group by TABLE_NAME",
			//	ServerSettings.MySQL_SchemaName);
			string sql = string.Format("select count(*) from information_schema.tables where table_schema='{0}' and table_name = 'VERSIONS'", ServerSettings.MySQL_SchemaName);
			logger.Trace(sql);
			using (MySqlConnection conn = new MySqlConnection(GetConnectionString()))
			{
				conn.Open();
				MySqlCommand cmd = new MySqlCommand(sql, conn);
				object result = cmd.ExecuteScalar();
				count = int.Parse(result.ToString());
			}

			// if the Versions already exists, it means we have done this already
			if (count > 0)
			{
				logger.Trace("Initial schema already exists");
				return;
			}

			logger.Trace("Initial schema doesn't exists, creating now...");

			//Create all the commands to be executed
			List<string> commands = new List<string>();
			commands.AddRange(CreateTableString_Versions());
			commands.AddRange(CreateTableString_AniDB_Anime());
			commands.AddRange(CreateTableString_AniDB_Anime_Category());
			commands.AddRange(CreateTableString_AniDB_Anime_Character());
			commands.AddRange(CreateTableString_AniDB_Anime_Relation());
			commands.AddRange(CreateTableString_AniDB_Anime_Review());
			commands.AddRange(CreateTableString_AniDB_Anime_Similar());
			commands.AddRange(CreateTableString_AniDB_Anime_Tag());
			commands.AddRange(CreateTableString_AniDB_Anime_Title());
			commands.AddRange(CreateTableString_AniDB_Category());
			commands.AddRange(CreateTableString_AniDB_Character());
			commands.AddRange(CreateTableString_AniDB_Character_Seiyuu());
			commands.AddRange(CreateTableString_AniDB_Seiyuu());
			commands.AddRange(CreateTableString_AniDB_Episode());
			commands.AddRange(CreateTableString_AniDB_File());
			commands.AddRange(CreateTableString_AniDB_GroupStatus());
			commands.AddRange(CreateTableString_AniDB_ReleaseGroup());
			commands.AddRange(CreateTableString_AniDB_Review());
			commands.AddRange(CreateTableString_AniDB_Tag());
			commands.AddRange(CreateTableString_AnimeEpisode());
			commands.AddRange(CreateTableString_AnimeEpisode_User());
			commands.AddRange(CreateTableString_AnimeGroup());
			commands.AddRange(CreateTableString_AnimeSeries());
			commands.AddRange(CreateTableString_AnimeSeries_User());
			commands.AddRange(CreateTableString_AnimeGroup_User());
			commands.AddRange(CreateTableString_VideoLocal());
			commands.AddRange(CreateTableString_VideoLocal_User());
			commands.AddRange(CreateTableString_CommandRequest());
			commands.AddRange(CreateTableString_CrossRef_AniDB_Other());
			commands.AddRange(CreateTableString_CrossRef_AniDB_TvDB());
			commands.AddRange(CreateTableString_CrossRef_File_Episode());
			commands.AddRange(CreateTableString_CrossRef_Languages_AniDB_File());
			commands.AddRange(CreateTableString_CrossRef_Subtitles_AniDB_File());
			commands.AddRange(CreateTableString_FileNameHash());
			commands.AddRange(CreateTableString_Language());
			commands.AddRange(CreateTableString_ImportFolder());
			commands.AddRange(CreateTableString_ScheduledUpdate());
			commands.AddRange(CreateTableString_VideoInfo());
			
			commands.AddRange(CreateTableString_DuplicateFile());
			commands.AddRange(CreateTableString_GroupFilter());
			commands.AddRange(CreateTableString_GroupFilterCondition());
			commands.AddRange(CreateTableString_AniDB_Vote());
			commands.AddRange(CreateTableString_TvDB_ImageFanart());
			commands.AddRange(CreateTableString_TvDB_ImageWideBanner());
			commands.AddRange(CreateTableString_TvDB_ImagePoster());
			commands.AddRange(CreateTableString_TvDB_Episode());
			commands.AddRange(CreateTableString_TvDB_Series());
			commands.AddRange(CreateTableString_AniDB_Anime_DefaultImage());
			commands.AddRange(CreateTableString_MovieDB_Movie());
			commands.AddRange(CreateTableString_MovieDB_Poster());
			commands.AddRange(CreateTableString_MovieDB_Fanart());
			commands.AddRange(CreateTableString_JMMUser());
			commands.AddRange(CreateTableString_Trakt_Episode());
			commands.AddRange(CreateTableString_Trakt_ImagePoster());
			commands.AddRange(CreateTableString_Trakt_ImageFanart());
			commands.AddRange(CreateTableString_Trakt_Show());
			commands.AddRange(CreateTableString_Trakt_Season());
			commands.AddRange(CreateTableString_CrossRef_AniDB_Trakt());


			using (MySqlConnection conn = new MySqlConnection(GetConnectionString()))
			{
				conn.Open();

				foreach (string cmdTable in commands)
				{
					using (MySqlCommand command = new MySqlCommand(cmdTable, conn))
					{
						try
						{
							command.ExecuteNonQuery();
						}
						catch (Exception ex)
						{
							logger.Error(cmdTable + " - " + ex.Message);
						}
					}
				}
			}

			Console.WriteLine("Creating version...");
			Versions ver1 = new Versions();
			ver1.VersionType = Constants.DatabaseTypeKey;
			ver1.VersionValue = "1";

			VersionsRepository repVer = new VersionsRepository();
			repVer.Save(ver1);
		}
Exemplo n.º 5
0
        public static void CreateInitialSchema()
        {
            int count = 0;
            string cmd = string.Format("Select count(*) from sysobjects where name = 'Versions'");
            using (SqlConnection tmpConn = new SqlConnection(string.Format("Server={0};User ID={1};Password={2};database={3}", ServerSettings.DatabaseServer,
                ServerSettings.DatabaseUsername, ServerSettings.DatabasePassword, ServerSettings.DatabaseName)))
            {
                using (SqlCommand command = new SqlCommand(cmd, tmpConn))
                {
                    tmpConn.Open();
                    object result = command.ExecuteScalar();
                    count = int.Parse(result.ToString());
                }
            }

            // if the Versions already exists, it means we have done this already
            if (count > 0) return;

            //Create all the commands to be executed
            List<string> commands = new List<string>();
            commands.AddRange(CreateTableString_Versions());
            commands.AddRange(CreateTableString_AniDB_Anime());
            commands.AddRange(CreateTableString_AniDB_Anime_Category());
            commands.AddRange(CreateTableString_AniDB_Anime_Character());
            commands.AddRange(CreateTableString_AniDB_Anime_Relation());
            commands.AddRange(CreateTableString_AniDB_Anime_Review());
            commands.AddRange(CreateTableString_AniDB_Anime_Similar());
            commands.AddRange(CreateTableString_AniDB_Anime_Tag());
            commands.AddRange(CreateTableString_AniDB_Anime_Title());
            commands.AddRange(CreateTableString_AniDB_Category());
            commands.AddRange(CreateTableString_AniDB_Character());
            commands.AddRange(CreateTableString_AniDB_Character_Seiyuu());
            commands.AddRange(CreateTableString_AniDB_Seiyuu());
            commands.AddRange(CreateTableString_AniDB_Episode());
            commands.AddRange(CreateTableString_AniDB_File());
            commands.AddRange(CreateTableString_AniDB_GroupStatus());
            commands.AddRange(CreateTableString_AniDB_ReleaseGroup());
            commands.AddRange(CreateTableString_AniDB_Review());
            commands.AddRange(CreateTableString_AniDB_Tag());
            commands.AddRange(CreateTableString_AnimeEpisode());
            commands.AddRange(CreateTableString_AnimeGroup());
            commands.AddRange(CreateTableString_AnimeSeries());
            commands.AddRange(CreateTableString_CommandRequest());
            commands.AddRange(CreateTableString_CrossRef_AniDB_Other());
            commands.AddRange(CreateTableString_CrossRef_AniDB_TvDB());
            commands.AddRange(CreateTableString_CrossRef_File_Episode());
            commands.AddRange(CreateTableString_CrossRef_Languages_AniDB_File());
            commands.AddRange(CreateTableString_CrossRef_Subtitles_AniDB_File());
            commands.AddRange(CreateTableString_FileNameHash());
            commands.AddRange(CreateTableString_Language());
            commands.AddRange(CreateTableString_ImportFolder());
            commands.AddRange(CreateTableString_ScheduledUpdate());
            commands.AddRange(CreateTableString_VideoInfo());
            commands.AddRange(CreateTableString_VideoLocal());
            commands.AddRange(CreateTableString_DuplicateFile());
            commands.AddRange(CreateTableString_GroupFilter());
            commands.AddRange(CreateTableString_GroupFilterCondition());
            commands.AddRange(CreateTableString_AniDB_Vote());
            commands.AddRange(CreateTableString_TvDB_ImageFanart());
            commands.AddRange(CreateTableString_TvDB_ImageWideBanner());
            commands.AddRange(CreateTableString_TvDB_ImagePoster());
            commands.AddRange(CreateTableString_TvDB_Episode());
            commands.AddRange(CreateTableString_TvDB_Series());
            commands.AddRange(CreateTableString_AniDB_Anime_DefaultImage());
            commands.AddRange(CreateTableString_MovieDB_Movie());
            commands.AddRange(CreateTableString_MovieDB_Poster());
            commands.AddRange(CreateTableString_MovieDB_Fanart());
            commands.AddRange(CreateTableString_JMMUser());
            commands.AddRange(CreateTableString_Trakt_Episode());
            commands.AddRange(CreateTableString_Trakt_ImagePoster());
            commands.AddRange(CreateTableString_Trakt_ImageFanart());
            commands.AddRange(CreateTableString_Trakt_Show());
            commands.AddRange(CreateTableString_Trakt_Season());
            commands.AddRange(CreateTableString_CrossRef_AniDB_Trakt());

            commands.AddRange(CreateTableString_AnimeEpisode_User());
            commands.AddRange(CreateTableString_AnimeSeries_User());
            commands.AddRange(CreateTableString_AnimeGroup_User());
            commands.AddRange(CreateTableString_VideoLocal_User());

            //commands.AddRange(CreateTableString_CrossRef_AnimeEpisode_Hash());

            using (SqlConnection tmpConn = new SqlConnection(string.Format("Server={0};User ID={1};Password={2};database={3}", ServerSettings.DatabaseServer,
                ServerSettings.DatabaseUsername, ServerSettings.DatabasePassword, ServerSettings.DatabaseName)))
            {
                tmpConn.Open();
                foreach (string cmdTable in commands)
                {
                    using (SqlCommand command = new SqlCommand(cmdTable, tmpConn))
                    {
                        command.ExecuteNonQuery();
                    }
                }
            }

            Console.WriteLine("Creating version...");
            Versions ver1 = new Versions();
            ver1.VersionType = Constants.DatabaseTypeKey;
            ver1.VersionValue = "1";

            VersionsRepository repVer = new VersionsRepository();
            repVer.Save(ver1);
        }
Exemplo n.º 6
0
        public static void DebugSettingsToLog()
        {
            #region System Info
            logger.Info("-------------------- SYSTEM INFO -----------------------");

            System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
            try
            {
                if (a != null)
                {
                    logger.Info(string.Format("JMM Server Version: v{0}", Utils.GetApplicationVersion(a)));
                }
            }
            catch (Exception ex)
            {
                // oopps, can't create file
                logger.Warn("Error in log: {0}", ex.ToString());
            }

            try
            {
                VersionsRepository repVersions = new VersionsRepository();
                Versions ver = repVersions.GetByVersionType(Constants.DatabaseTypeKey);
                if (ver != null)
                    logger.Info(string.Format("Database Version: {0}", ver.VersionValue));
            }
            catch (Exception ex)
            {
                // oopps, can't create file
                logger.Warn("Error in log: {0}", ex.Message);
            }

            logger.Info(string.Format("Operating System: {0}", Utils.GetOSInfo()));

            string screenSize = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width.ToString() + "x" +
                System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height.ToString();
            logger.Info(string.Format("Screen Size: {0}", screenSize));

            try
            {
                string mediaInfoVersion = "**** MediaInfo - DLL Not found *****";

                string mediaInfoPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
                FileInfo fi = new FileInfo(mediaInfoPath);
                mediaInfoPath = Path.Combine(fi.Directory.FullName, Environment.Is64BitProcess ? "x64" : "x86", "MediaInfo.dll");

                if (File.Exists(mediaInfoPath))
                {
                    FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(mediaInfoPath);
                    mediaInfoVersion = string.Format("MediaInfo DLL {0}.{1}.{2}.{3} ({4})", fvi.FileMajorPart, fvi.FileMinorPart, fvi.FileBuildPart, fvi.FilePrivatePart, mediaInfoPath);
                }
                logger.Info(mediaInfoVersion);

                string hasherInfoVersion = "**** Hasher - DLL NOT found *****";

                string fullHasherexepath = System.Reflection.Assembly.GetExecutingAssembly().Location;
                fi = new FileInfo(fullHasherexepath);
                fullHasherexepath = Path.Combine(fi.Directory.FullName, Environment.Is64BitProcess ? "x64" : "x86", "hasher.dll");

                if (File.Exists(fullHasherexepath))
                    hasherInfoVersion = string.Format("Hasher DLL found at {0}", fullHasherexepath);
                logger.Info(hasherInfoVersion);
            }
            catch { }

            logger.Info("-------------------------------------------------------");
            #endregion

            logger.Info("----------------- SERVER SETTINGS ----------------------");

            logger.Info("DatabaseType: {0}", DatabaseType);
            logger.Info("MSSQL DatabaseServer: {0}", DatabaseServer);
            logger.Info("MSSQL DatabaseName: {0}", DatabaseName);
            logger.Info("MSSQL DatabaseUsername: {0}", string.IsNullOrEmpty(DatabaseUsername) ? "NOT SET" : "***HIDDEN***");
            logger.Info("MSSQL DatabasePassword: {0}", string.IsNullOrEmpty(DatabasePassword) ? "NOT SET" : "***HIDDEN***");

            logger.Info("SQLITE DatabaseFile: {0}", DatabaseFile);

            logger.Info("MySQL_Hostname: {0}", MySQL_Hostname);
            logger.Info("MySQL_SchemaName: {0}", MySQL_SchemaName);
            logger.Info("MySQL_Username: {0}", string.IsNullOrEmpty(MySQL_Username) ? "NOT SET" : "***HIDDEN***");
            logger.Info("MySQL_Password: {0}", string.IsNullOrEmpty(MySQL_Password) ? "NOT SET" : "***HIDDEN***");

            logger.Info("AniDB_Username: {0}", string.IsNullOrEmpty(AniDB_Username) ? "NOT SET" : "***HIDDEN***");
            logger.Info("AniDB_Password: {0}", string.IsNullOrEmpty(AniDB_Password) ? "NOT SET" : "***HIDDEN***");
            logger.Info("AniDB_ServerAddress: {0}", AniDB_ServerAddress);
            logger.Info("AniDB_ServerPort: {0}", AniDB_ServerPort);
            logger.Info("AniDB_ClientPort: {0}", AniDB_ClientPort);
            logger.Info("AniDB_AVDumpKey: {0}", string.IsNullOrEmpty(AniDB_AVDumpKey) ? "NOT SET" : "***HIDDEN***");
            logger.Info("AniDB_AVDumpClientPort: {0}", AniDB_AVDumpClientPort);
            logger.Info("AniDB_DownloadRelatedAnime: {0}", AniDB_DownloadRelatedAnime);
            logger.Info("AniDB_DownloadSimilarAnime: {0}", AniDB_DownloadSimilarAnime);
            logger.Info("AniDB_DownloadReviews: {0}", AniDB_DownloadReviews);
            logger.Info("AniDB_DownloadReleaseGroups: {0}", AniDB_DownloadReleaseGroups);
            logger.Info("AniDB_MyList_AddFiles: {0}", AniDB_MyList_AddFiles);
            logger.Info("AniDB_MyList_StorageState: {0}", AniDB_MyList_StorageState);
            logger.Info("AniDB_MyList_ReadUnwatched: {0}", AniDB_MyList_ReadUnwatched);
            logger.Info("AniDB_MyList_ReadWatched: {0}", AniDB_MyList_ReadWatched);
            logger.Info("AniDB_MyList_SetWatched: {0}", AniDB_MyList_SetWatched);
            logger.Info("AniDB_MyList_SetUnwatched: {0}", AniDB_MyList_SetUnwatched);
            logger.Info("AniDB_MyList_UpdateFrequency: {0}", AniDB_MyList_UpdateFrequency);
            logger.Info("AniDB_Calendar_UpdateFrequency: {0}", AniDB_Calendar_UpdateFrequency);
            logger.Info("AniDB_Anime_UpdateFrequency: {0}", AniDB_Anime_UpdateFrequency);

            logger.Info("WebCache_Address: {0}", WebCache_Address);
            logger.Info("WebCache_Anonymous: {0}", WebCache_Anonymous);
            logger.Info("WebCache_XRefFileEpisode_Get: {0}", WebCache_XRefFileEpisode_Get);
            logger.Info("WebCache_XRefFileEpisode_Send: {0}", WebCache_XRefFileEpisode_Send);
            logger.Info("WebCache_TvDB_Get: {0}", WebCache_TvDB_Get);
            logger.Info("WebCache_TvDB_Send: {0}", WebCache_TvDB_Send);
            logger.Info("WebCache_MAL_Get: {0}", WebCache_MAL_Get);
            logger.Info("WebCache_MAL_Send: {0}", WebCache_MAL_Send);

            logger.Info("TvDB_AutoFanart: {0}", TvDB_AutoFanart);
            logger.Info("TvDB_AutoFanartAmount: {0}", TvDB_AutoFanartAmount);
            logger.Info("TvDB_AutoWideBanners: {0}", TvDB_AutoWideBanners);
            logger.Info("TvDB_AutoPosters: {0}", TvDB_AutoPosters);
            logger.Info("TvDB_UpdateFrequency: {0}", TvDB_UpdateFrequency);
            logger.Info("TvDB_Language: {0}", TvDB_Language);

            logger.Info("MovieDB_AutoFanart: {0}", MovieDB_AutoFanart);
            logger.Info("MovieDB_AutoFanartAmount: {0}", MovieDB_AutoFanartAmount);
            logger.Info("MovieDB_AutoPosters: {0}", MovieDB_AutoPosters);

            logger.Info("VideoExtensions: {0}", VideoExtensions);
            logger.Info("DefaultSeriesLanguage: {0}", DefaultSeriesLanguage);
            logger.Info("DefaultEpisodeLanguage: {0}", DefaultEpisodeLanguage);
            logger.Info("RunImportOnStart: {0}", RunImportOnStart);
            logger.Info("Hash_CRC32: {0}", Hash_CRC32);
            logger.Info("Hash_MD5: {0}", Hash_MD5);
            logger.Info("Hash_SHA1: {0}", Hash_SHA1);
            logger.Info("Import_UseExistingFileWatchedStatus: {0}", Import_UseExistingFileWatchedStatus);

            logger.Info("Trakt_IsEnabled: {0}", Trakt_IsEnabled);
            logger.Info("Trakt_AuthToken: {0}", string.IsNullOrEmpty(Trakt_AuthToken) ? "NOT SET" : "***HIDDEN***");
            logger.Info("Trakt_RefreshToken: {0}", string.IsNullOrEmpty(Trakt_RefreshToken) ? "NOT SET" : "***HIDDEN***");
            logger.Info("Trakt_UpdateFrequency: {0}", Trakt_UpdateFrequency);
            logger.Info("Trakt_SyncFrequency: {0}", Trakt_SyncFrequency);

            logger.Info("AutoGroupSeries: {0}", AutoGroupSeries);
            logger.Info("LanguagePreference: {0}", LanguagePreference);
            logger.Info("LanguageUseSynonyms: {0}", LanguageUseSynonyms);
            logger.Info("EpisodeTitleSource: {0}", EpisodeTitleSource);
            logger.Info("SeriesDescriptionSource: {0}", SeriesDescriptionSource);
            logger.Info("SeriesNameSource: {0}", SeriesNameSource);
            logger.Info("BaseImagesPath: {0}", BaseImagesPath);
            logger.Info("BaseImagesPathIsDefault: {0}", BaseImagesPathIsDefault);

            logger.Info("-------------------------------------------------------");
        }