public JsonNetResult ProcessWorkGroup(int id) { var success = true; var message = "Updated"; try { var workgroup = _repositoryFactory.WorkgroupRepository.Queryable.Single(a => a.Id == id); Check.Require(workgroup.Administrative); Check.Require(workgroup.IsActive); _workgroupService.AddRelatedAdminUsers(workgroup); } catch (Exception ex) { success = false; message = ex.Message; } return(new JsonNetResult(new { success, message })); }
public ActionResult AddSubOrganizations(int id, string[] selectedOrganizations) { ViewBag.StepNumber = 2; var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) { Message = "Workgroup not found."; this.RedirectToAction <WorkgroupController>(a => a.Index(false)); } if (selectedOrganizations != null) { //Don't/can't have this anymore jcs 2012/3/12 //var user = GetCurrentUser(); //foreach(var selectedOrganization in selectedOrganizations) //{ // Check.Require(user.Organizations.Any(a => a.Id == selectedOrganization), string.Format("The organization '{0}' was being added by {1} to a workgroup's subOrganizations.", selectedOrganization, user.FullNameAndId)); //} var existingOrganizations = workgroup.Organizations.Select(a => a.Id).ToList(); var organizationsToAdd = Repository.OfType <Organization>().Queryable.Where(a => selectedOrganizations.Contains(a.Id)).Select( b => b.Id).ToList().Union(existingOrganizations).ToList(); workgroup.Organizations = Repository.OfType <Organization>().Queryable.Where(a => organizationsToAdd.Contains(a.Id)).ToList(); } _workgroupRepository.EnsurePersistent(workgroup); _workgroupService.AddRelatedAdminUsers(workgroup); //This will search through all the related parent admin workgroups for users to add. return(this.RedirectToAction(a => a.SubOrganizations(workgroup.Id))); }