public static ScheduledTaskStatus ScheduleSync(ADManagedGroup ManagedGroup) { if (ManagedGroup == null) throw new ArgumentNullException("ManagedGroup"); JobDataMap taskData = new JobDataMap() { {"ManagedGroups", new List<ADManagedGroup> { ManagedGroup } } }; var instance = new ADManagedGroupsSyncTask(); return instance.ScheduleTask(taskData); }
private ScheduledTaskStatus UpdateScope(DocumentTemplate documentTemplate, string Scope) { if (string.IsNullOrWhiteSpace(Scope) || !DocumentTemplate.DocumentTemplateScopes.ToList().Contains(Scope)) throw new ArgumentException("Invalid Scope", "Scope"); Database.Configuration.LazyLoadingEnabled = true; if (documentTemplate.Scope != Scope) { documentTemplate.Scope = Scope; if (documentTemplate.Scope != DocumentTemplate.DocumentTemplateScopes.Job && documentTemplate.JobSubTypes != null) { foreach (var st in documentTemplate.JobSubTypes.ToArray()) documentTemplate.JobSubTypes.Remove(st); } Database.SaveChanges(); // Trigger Managed Group Sync var managedGroups = new ADManagedGroup[] { DocumentTemplateDevicesManagedGroup.Initialize(documentTemplate), DocumentTemplateUsersManagedGroup.Initialize(documentTemplate) }; if (managedGroups.Any(mg => mg != null)) // Sync Group return ADManagedGroupsSyncTask.ScheduleSync(managedGroups.Where(mg => mg != null)); } return null; }