/// <summary> /// When overridden in a derived class, deletes all user-profile data for profiles in which the last activity date occurred before the specified date. /// </summary> /// <returns>The number of profiles deleted from the data source.</returns> /// <param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption" /> values, specifying /// whether anonymous, authenticated, or both types of profiles are deleted.</param> /// <param name="userInactiveSinceDate">A <see cref="T:System.DateTime" /> that identifies which user profiles are considered /// inactive. If the <see cref="P:System.Web.Profile.ProfileInfo.LastActivityDate" /> value of a user profile occurs on or before /// this date and time, the profile is considered inactive.</param> public override int DeleteInactiveProfiles(ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate) { int num = 0; using (EFDataModelEntities context = new EFDataModelEntities(connectionString)) { IQueryable<DataLayer.Profile> profiles = context.User.Where(MatchUserApplication()) .Where(ApplyAuthenticationOption(authenticationOption)) .Where(u => u.LastActivityDate <= userInactiveSinceDate.ToUniversalTime()) .Select(u => u.Profile); foreach (DataLayer.Profile profile in profiles) { context.DeleteObject(profile); num++; } context.SaveChanges(); } return num; }
/// <summary> /// Removes a role from the data source for the configured applicationName. /// </summary> /// <param name="roleName">The name of the role to delete.</param> /// <param name="throwOnPopulatedRole">If true, throw an exception if <paramref name="roleName"/> has one or more members and do not delete <paramref name="roleName"/>.</param> /// <returns> /// true if the role was successfully deleted; otherwise, false. /// </returns> public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { // Validate role if (!RoleExists(roleName)) { throw new ProviderException("Role does not exist."); } if (throwOnPopulatedRole && GetUsersInRole(roleName).Length > 0) { throw new ProviderException("Cannot delete a populated role."); } using (EFDataModelEntities context = new EFDataModelEntities(connectionString)) { Role role = GetRole(r => r.Name == roleName, context); if (role == null) { return false; } try { context.DeleteObject(role); context.SaveChanges(); } catch (Exception ex) { if (WriteExceptionsToEventLog) { WriteToEventLog(ex, "DeleteRole"); return false; } throw; } return true; } }
/// <summary> /// When overridden in a derived class, deletes profile properties and information for profiles that match the supplied list of user names. /// </summary> /// <returns>The number of profiles deleted from the data source.</returns> /// <param name="usernames">A string array of user names for profiles to be deleted.</param> public override int DeleteProfiles(string[] usernames) { int num = 0; using (EFDataModelEntities context = new EFDataModelEntities(connectionString)) { IQueryable<User> users = context.User.Include("Profile").Where(u => usernames.Contains(u.Username) && u.Profile != null); foreach (User user in users) { context.DeleteObject(user.Profile); num++; } context.SaveChanges(); } return num; }