Exemple #1
0
        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)));
        }