public override void Validate() { base.Validate(); DlpPolicyMetaData dlpPolicyMetaData = DlpPolicyParser.ParseDlpPolicyInstance(this.taskObject.TargetItem.TransportRulesXml); if (this.taskObject.Fields.IsModified("State")) { dlpPolicyMetaData.State = this.taskObject.State; } if (this.taskObject.Fields.IsModified("Mode")) { dlpPolicyMetaData.Mode = this.taskObject.Mode; } if (this.taskObject.TargetItem.IsModified(ADObjectSchema.Name)) { dlpPolicyMetaData.Name = this.taskObject.TargetItem.Name; } if (this.taskObject.Fields.IsModified("Description")) { dlpPolicyMetaData.Description = this.taskObject.Description; } ADComplianceProgram adcomplianceProgram = dlpPolicyMetaData.ToAdObject(); this.taskObject.TargetItem.State = adcomplianceProgram.State; this.taskObject.TargetItem.Name = adcomplianceProgram.Name; this.taskObject.TargetItem.Description = adcomplianceProgram.Description; this.taskObject.TargetItem.TransportRulesXml = adcomplianceProgram.TransportRulesXml; }
public static void AddTenantDlpPolicy(IConfigDataProvider dataSession, DlpPolicyMetaData dlpPolicy, string organizationParameterValue, CmdletRunner cmdletRunner, out IEnumerable <PSObject> results) { results = null; ADComplianceProgram adcomplianceProgram = dlpPolicy.ToAdObject(); ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, DlpUtils.TenantDlpPoliciesCollectionName); adcomplianceProgram.OrganizationId = dlpPolicyCollection.OrganizationId; adcomplianceProgram.SetId(dlpPolicyCollection.Id.GetChildId(dlpPolicy.Name)); dataSession.Save(adcomplianceProgram); IEnumerable <string> enumerable = Utils.AddOrganizationScopeToCmdlets(dlpPolicy.PolicyCommands, organizationParameterValue); string domainController = null; ADSessionSettings sessionSettings = null; MessagingPoliciesSyncLogDataSession messagingPoliciesSyncLogDataSession = dataSession as MessagingPoliciesSyncLogDataSession; if (messagingPoliciesSyncLogDataSession != null) { domainController = messagingPoliciesSyncLogDataSession.LastUsedDc; sessionSettings = messagingPoliciesSyncLogDataSession.SessionSettings; } try { foreach (string cmdlet in enumerable) { cmdletRunner.RunCmdlet(cmdlet, true); } } catch (ParseException e) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e); } catch (RuntimeException e2) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e2); } catch (CmdletExecutionException e3) { DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e3); } }