コード例 #1
0
        /// <summary>
        /// Handles the <see cref="GallerySettings.GallerySettingsSaved" /> event.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        public async void GallerySettingsSaved(object sender, GallerySettingsEventArgs e)
        {
            // Finish populating those properties that weren't populated in the business layer.
            await AddMembershipDataToGallerySettings();

            // If the default roles setting has changed, add or remove users to/from roles on a background thread.
            if ((e.DefaultRolesForUserAdded != null && e.DefaultRolesForUserAdded.Length > 0) || (e.DefaultRolesForUserRemoved != null && e.DefaultRolesForUserRemoved.Length > 0))
            {
                //System.Threading.Tasks.Task.Factory.StartNew(() =>
                // {
                //     try
                //     {
                // For each added role, find the users *NOT* in the role and add them to the role
                var allUsers = _userController.GetAllUsers();
                foreach (var roleName in e.DefaultRolesForUserAdded)
                {
                    if (await _userController.RoleExists(roleName))
                    {
                        var usersInRole = (await _userController.GetUsersInRole(roleName)).Select(u => u.UserName);
                        foreach (var userName in allUsers.Select(u => u.UserName).Except(usersInRole))
                        {
                            await _userController.AddUserToRole(userName, roleName);
                        }

                        //RoleController.AddUsersToRole(allUsers.Select(u => u.UserName).Except(RoleController.GetUsersInRole(roleName)).ToArray(), roleName);
                    }
                }

                // For each removed role, find the users in the role and remove them from the role
                foreach (var roleName in e.DefaultRolesForUserRemoved)
                {
                    if (await _userController.RoleExists(roleName))
                    {
                        foreach (var user in await _userController.GetUsersInRole(roleName))
                        {
                            await _userController.RemoveUserFromRole(user, roleName);
                        }
                        //RoleController.RemoveUsersFromRole(RoleController.GetUsersInRole(roleName), roleName);
                    }
                }

                CacheController.RemoveCache(CacheItem.GalleryServerRoles);
                //    }
                //    catch (Exception ex)
                //    {
                //        AppEventController.LogError(ex, e.GalleryId);
                //    }
                //});
            }
        }
コード例 #2
0
 /// <summary>
 /// Handles the <see cref="Business.GallerySettings.GallerySettingsSaved" /> event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
 private static void GallerySettingsSaved(object sender, GallerySettingsEventArgs e)
 {
     // Finish populating those properties that weren't populated in the business layer.
     AddMembershipDataToGallerySettings();
 }