/// <summary> /// Rebuilds the index. /// </summary> /// <param name="onlineMode">if set to <c>true</c> the task will be running in Online mode.</param> /// <returns>Number of affected entries (zero in this case).</returns> public static int RebuildIndex(bool onlineMode) { Log.Audit(Context.User, "'Rebuild index' task started with parameter onlineMode={0}", onlineMode.ToString()); string getSqlQuery = Util.GetSqlQueryFromItem( onlineMode ? RebuildIndexOnlineQueryItem : RebuildIndexQueryItem, Util.SqlProviderName); return(AnalyticsDatabaseHelper.ExecuteNonQuery(getSqlQuery)); }
/// <summary> /// Trivial logic for cleanup tasks with filter. /// </summary> /// <param name="query">Prepared query</param> /// <returns>Number of affected entries.</returns> private static int ApplySimpleCleanFilter(string query) { try { AnalyticsDatabaseHelper.MakeConstraintsCascade(); int processed = AnalyticsDatabaseHelper.ExecuteNonQuery(query); AnalyticsDatabaseHelper.RemoveUnusedGlobalSessions(); return(processed); } finally { AnalyticsDatabaseHelper.MakeConstraintsStandard(); } }
/// <summary> /// Backups current analytics database. /// </summary> /// <param name="pathToBackupFile">Path to the file, which will be created as a backup (directory must exist).</param> /// <returns>The full name of the created backup file.</returns> public static string BackupDatabase(string pathToBackupFile) { Assert.IsNotNull(Path.GetDirectoryName(pathToBackupFile), "Path could not be null"); Assert.IsTrue( Directory.Exists(Path.GetDirectoryName(pathToBackupFile) ?? string.Empty), "Directory must exist: " + pathToBackupFile); Log.Audit(Context.User, "'BackupDatabase' task started with parameter pathToBackupFile={0}", pathToBackupFile); string getSqlQuery = Util.GetSqlQueryFromItem(BackupDatabaseQueryItem, Util.SqlProviderName); string preparedQuery = string.Format( getSqlQuery, AnalyticsDatabaseHelper.GetAnalyticsDatabaseName(), pathToBackupFile); AnalyticsDatabaseHelper.ExecuteNonQuery(preparedQuery); return(pathToBackupFile); }
/// <summary> /// Removes the BOTs sessions. /// </summary> /// <returns>Number of affected entries.</returns> public static int RemoveBotSessions() { Log.Audit(Context.User, "'RemoveBotSessions' task started"); try { AnalyticsDatabaseHelper.MakeConstraintsCascade(); string getSqlQuery = Util.GetSqlQueryFromItem(RemoveBotVisitsQueryItem, Util.SqlProviderName); int processed = AnalyticsDatabaseHelper.ExecuteNonQuery(getSqlQuery); return(processed); } finally { AnalyticsDatabaseHelper.MakeConstraintsStandard(); } }
public static int CleanAllCollectedData(bool cleanIps, out int ipOwnersRemoved) { Log.Audit(Context.User, "Clean all task started with cleanIps={0}", cleanIps.ToString()); string getSqlQuery = Util.GetSqlQueryFromItem(CleanAllCollectedDataQueryItem, Util.SqlProviderName); string getSqlQueryHelperPart = Util.GetSqlQueryFromItem(CleanCollectedHelperDataQueryItem, Util.SqlProviderName); string getSqlQueryIpsPart = Util.GetSqlQueryFromItem(CleanCollectedIpsQueryItem, Util.SqlProviderName); try { AnalyticsDatabaseHelper.MakeConstraintsCascade(); int processed = AnalyticsDatabaseHelper.ExecuteNonQuery(getSqlQuery); ipOwnersRemoved = cleanIps ? AnalyticsDatabaseHelper.ExecuteNonQuery(getSqlQueryIpsPart) : 0; AnalyticsDatabaseHelper.ExecuteNonQuery(getSqlQueryHelperPart); return(processed); } finally { AnalyticsDatabaseHelper.MakeConstraintsStandard(); } }