Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 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)
     {
     }
 }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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));
            }
        }