Exemplo n.º 1
0
 private void RecoverDeletedRules(string domainController)
 {
     if (this.transportRuleCollectionBackUp != null)
     {
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(domainController, false, ConsistencyMode.IgnoreInvalid, base.SessionSettings, 631, "RecoverDeletedRules", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\TransportRule\\ImportTransportRuleCollection.cs");
         IConfigDataProvider   session = new MessagingPoliciesSyncLogDataSession(tenantOrTopologyConfigurationSession, null, null);
         ADRuleStorageManager  adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, session);
         adruleStorageManager.ClearRules(null);
         adruleStorageManager.ReplaceRules(this.transportRuleCollectionBackUp, this.ResolveCurrentOrganization());
     }
 }
Exemplo n.º 2
0
        private void ProcessE14Format(TransportRuleCollection rules)
        {
            ADRuleStorageManager adruleStorageManager;

            try
            {
                IConfigDataProvider session = new MessagingPoliciesSyncLogDataSession(base.DataSession, null, null);
                adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, session);
            }
            catch (RuleCollectionNotInAdException exception)
            {
                base.WriteError(exception, ErrorCategory.InvalidOperation, null);
                return;
            }
            Exception ex = null;

            try
            {
                if (!Utils.IsEdgeRoleInstalled())
                {
                    Version v     = null;
                    bool    flag  = false;
                    bool    flag2 = false;
                    foreach (Rule rule in rules)
                    {
                        TransportRule transportRule = (TransportRule)rule;
                        if (transportRule.IsTooAdvancedToParse)
                        {
                            base.WriteError(new InvalidOperationException(Strings.CannotCreateRuleDueToVersion(transportRule.Name)), ErrorCategory.InvalidOperation, null);
                            return;
                        }
                        Version minimumVersion = transportRule.MinimumVersion;
                        if (v == null || v < minimumVersion)
                        {
                            v = minimumVersion;
                        }
                        if (!flag || !flag2)
                        {
                            foreach (Action action in transportRule.Actions)
                            {
                                if (string.Equals(action.Name, "ApplyDisclaimer") || string.Equals(action.Name, "ApplyDisclaimerWithSeparator") || string.Equals(action.Name, "ApplyDisclaimerWithSeparatorAndReadingOrder"))
                                {
                                    flag = true;
                                }
                                if (string.Equals(action.Name, "LogEvent"))
                                {
                                    flag2 = true;
                                }
                            }
                        }
                    }
                    if (flag && !this.Force && !base.ShouldContinue(Strings.PromptToUpgradeRulesFormat))
                    {
                        return;
                    }
                    if (flag2 && !this.Force && !base.ShouldContinue(Strings.PromptToRemoveLogEventAction))
                    {
                        return;
                    }
                }
                try
                {
                    adruleStorageManager.ReplaceRules(rules, this.ResolveCurrentOrganization());
                }
                catch (DataValidationException exception2)
                {
                    base.WriteError(exception2, ErrorCategory.InvalidArgument, null);
                    return;
                }
            }
            catch (ArgumentOutOfRangeException ex2)
            {
                ex = ex2;
            }
            catch (ArgumentException ex3)
            {
                ex = ex3;
            }
            catch (PathTooLongException ex4)
            {
                ex = ex4;
            }
            catch (DirectoryNotFoundException ex5)
            {
                ex = ex5;
            }
            catch (UnauthorizedAccessException ex6)
            {
                ex = ex6;
            }
            catch (FileNotFoundException ex7)
            {
                ex = ex7;
            }
            catch (IOException ex8)
            {
                ex = ex8;
            }
            catch (NotSupportedException ex9)
            {
                ex = ex9;
            }
            if (ex != null)
            {
                base.WriteError(ex, ErrorCategory.InvalidOperation, null);
            }
        }