public ActionResult AddToSet(string id, AdministratorsModel model) { var configSet = reader.GetConfigSet(id); var userList = configSet.Administrators.ToList(); foreach (var userId in model.PostedUserIds) { var user = ConfigReaderFactory.GetUserFacade().GetUser(userId); if (!(from u in userList where u.NameId == user.NameId select u).Any()) { configSet.Administrators.Add(user); } } var usersToRemove = configSet.Administrators.Where(administrator => !model.PostedUserIds.Contains(administrator.NameId)).ToList(); foreach (var configUser in usersToRemove) { configSet.Administrators.Remove(configUser); } reader.UpdateAdministrators(configSet.Administrators); userReader.SendNotifications(configSet.Administrators, usersToRemove); ViewBag.Id = id; return(RedirectToAction("Details", "ConfigSet", new { name = configSet.Name, system = configSet.System })); }