/// <summary> /// Deletes personalization state corresponding to the specified users and specified pages from the database. /// </summary> /// <param name="scope">The personalization scope.</param> /// <param name="paths">The paths indicating where to save the data.</param> /// <param name="usernames">The user names.</param> /// <returns></returns> public override int ResetState(PersonalizationScope scope, string[] paths, string[] usernames) { bool hasPaths = !(paths == null || paths.Length == 0); bool hasUsers = !(usernames == null || usernames.Length == 0); var count = 0; var connection = new MySQLPersonalizationConnectionHelper(connectionString); connection.OpenConnection(true); if (scope == PersonalizationScope.Shared) { try { if (paths == null) // reset all state { return(PersonalizationProviderProcedures.my_aspnet_PersonalizationAdministration_DeleteAllState(true, ApplicationId, connection)); } else { return(PersonalizationProviderProcedures.my_aspnet_PersonalizationAdministration_ResetSharedState(ApplicationId, paths, connection)); } } catch (Exception ex) { if (writeExceptionsToEventLog) { WriteToEventLog(ex, "MySQLPersonalizationProvider - ResetState"); } throw; } finally { connection.CloseConnection(); } } else { DateTime dateTime = Convert.ToDateTime("2038-01-19 03:14:07.999999"); // MySQL TimeStamp MaxValue if (!hasPaths && !hasUsers) { count = PersonalizationProviderProcedures.my_aspnet_PersonalizationAdministration_DeleteAllState(true, ApplicationId, connection); } else if (!hasUsers) { count = ResetUserState(ResetUserStateMode.PerPaths, dateTime, paths, null); } else { count = ResetUserState(ResetUserStateMode.PerUsers, dateTime, paths, usernames); } } return(count); }