/// <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>
        /// 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();
            }
        }