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()); } }
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); } }