private void WriteRawRules() { ADRuleStorageManager ruleStorageManager = base.RuleStorageManager; using (Stream stream = new MemoryStream()) { using (StreamWriter streamWriter = new StreamWriter(stream)) { ruleStorageManager.LoadRuleCollectionWithoutParsing(); ruleStorageManager.WriteRawRulesToStream(streamWriter); if (base.NeedSuppressingPiiData) { stream.Seek(0L, SeekOrigin.Begin); StreamReader streamReader = new StreamReader(stream); string value = SuppressingPiiData.Redact(streamReader.ReadToEnd()); stream.SetLength(0L); streamWriter.Write(value); streamWriter.Flush(); } stream.Seek(0L, SeekOrigin.Begin); using (BinaryReader binaryReader = new BinaryReader(stream)) { BinaryFileDataObject dataObject = new BinaryFileDataObject { FileData = binaryReader.ReadBytes((int)binaryReader.BaseStream.Length) }; this.WriteResult(dataObject); } } } }
private Dictionary <OrganizationId, ADRuleStorageManager> GetRuleCollections(IEnumerable <TransportRule> rules) { Dictionary <OrganizationId, ADRuleStorageManager> dictionary = new Dictionary <OrganizationId, ADRuleStorageManager>(); foreach (TransportRule transportRule in rules) { if (!dictionary.ContainsKey(transportRule.OrganizationId)) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, transportRule.OrganizationId, base.ExecutingUserOrganizationId, false); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, false, ConsistencyMode.PartiallyConsistent, sessionSettings, 169, "GetRuleCollections", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\MessageHygiene\\HygieneConfiguration\\GetHygieneFilterRuleTaskBase.cs"); ADRuleStorageManager adruleStorageManager; try { adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, tenantOrTopologyConfigurationSession); adruleStorageManager.LoadRuleCollectionWithoutParsing(); } catch (RuleCollectionNotInAdException) { continue; } dictionary.Add(transportRule.OrganizationId, adruleStorageManager); } } return(dictionary); }
private TransportRule GetTransportRule(string ruleName) { ADRuleStorageManager adruleStorageManager = new ADRuleStorageManager("HostedContentFilterVersioned", base.DataSession); adruleStorageManager.LoadRuleCollectionWithoutParsing(new TextFilter(ADObjectSchema.Name, ruleName, MatchOptions.FullString, MatchFlags.Default)); TransportRule result = null; if (adruleStorageManager.Count > 0) { adruleStorageManager.GetRuleWithoutParsing(0, out result); } return(result); }
private static TransportRule GetTransportRuleUnParsed(IConfigDataProvider dataSession, string collectionName, QueryFilter filter) { ADRuleStorageManager adruleStorageManager = new ADRuleStorageManager(collectionName, dataSession); adruleStorageManager.LoadRuleCollectionWithoutParsing(filter); TransportRule result = null; if (adruleStorageManager.Count > 0) { adruleStorageManager.GetRuleWithoutParsing(0, out result); } return(result); }
protected override void WriteResult <T>(IEnumerable <T> dataObjects) { try { if (this.Identity == null) { ADRuleStorageManager adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, base.DataSession); adruleStorageManager.LoadRuleCollectionWithoutParsing(); for (int i = 0; i < adruleStorageManager.Count; i++) { TransportRule transportRule; adruleStorageManager.GetRuleWithoutParsing(i, out transportRule); this.OutputRule(i, transportRule); } } else { List <TransportRule> list = new List <TransportRule>(); list.AddRange((IEnumerable <TransportRule>)dataObjects); Dictionary <OrganizationId, ADRuleStorageManager> ruleCollections = this.GetRuleCollections(list); foreach (KeyValuePair <OrganizationId, ADRuleStorageManager> keyValuePair in ruleCollections) { for (int j = 0; j < keyValuePair.Value.Count; j++) { TransportRule transportRule; keyValuePair.Value.GetRuleWithoutParsing(j, out transportRule); if (Utils.IsRuleIdInList(transportRule.Id, list)) { this.OutputRule(j, transportRule); } } } } } catch (RuleCollectionNotInAdException) { } }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); Dictionary <string, string> ruleNames = GetSupervisionPolicy.GetRuleNames(); ADRuleStorageManager adruleStorageManager = null; try { adruleStorageManager = new ADRuleStorageManager("TransportVersioned", base.DataSession); } catch (RuleCollectionNotInAdException exception) { base.WriteError(exception, (ErrorCategory)1003, null); } QueryFilter queryFilter = GetSupervisionPolicy.GetQueryFilter(ruleNames.Keys); adruleStorageManager.LoadRuleCollectionWithoutParsing(queryFilter); try { adruleStorageManager.ParseRuleCollection(); } catch (ParserException exception2) { base.WriteError(exception2, (ErrorCategory)1003, null); } SupervisionPolicy presentationObject = GetSupervisionPolicy.GetPresentationObject(adruleStorageManager, ref ruleNames, this.DisplayDetails.ToBool()); this.WriteResult(presentationObject); string missingPolicies = GetSupervisionPolicy.GetMissingPolicies(ruleNames); if (!string.IsNullOrEmpty(missingPolicies)) { this.WriteWarning(Strings.SupervisionPoliciesNotFound(missingPolicies)); } TaskLogger.LogExit(); }
protected override void InternalProcessRecord() { ADRuleStorageManager adruleStorageManager = this.RuleStorageManager; if (adruleStorageManager == null) { return; } using (Stream stream = new MemoryStream()) { using (StreamWriter streamWriter = new StreamWriter(stream)) { adruleStorageManager.LoadRuleCollectionWithoutParsing(); IEnumerable <Rule> source = adruleStorageManager.WriteToStream(streamWriter, ExportRuleCollectionTaskBase.MaxLegacyFormatVersion, null); stream.Seek(0L, SeekOrigin.Begin); BinaryReader binaryReader = new BinaryReader(stream); BinaryFileDataObject dataObject = new BinaryFileDataObject { FileData = binaryReader.ReadBytes((int)binaryReader.BaseStream.Length) }; this.WriteResult(dataObject); if (source.Any <Rule>()) { this.WriteWarning(Strings.ExportSkippedE15Rules(source.Count <Rule>())); } } } try { adruleStorageManager.ParseRuleCollection(); } catch (ParserException ex) { this.WriteWarning(Strings.CorruptRuleCollection(ex.Message)); } }