private void SyncRules() { lock (_rules) { var rules = new List <IRule>(); foreach (var profile in Profiles) { var pro = profile as FirewallProfile; if (pro != null) { foreach (var application in pro.UnderlyingObject.AuthorizedApplications) { var authorizedApplication = application as INetFwAuthorizedApplication; if (authorizedApplication != null) { rules.Add(new ApplicationRule(authorizedApplication, pro.Type)); } } foreach (var port in pro.UnderlyingObject.GloballyOpenPorts) { var openPort = port as INetFwOpenPort; if (openPort != null) { rules.Add(new PortRule(openPort, pro.Type)); } } } } _rules.ItemsModified -= RulesOnItemsModified; _rules.Sync(rules.ToArray()); _rules.ItemsModified += RulesOnItemsModified; } }
private void SyncRules() { lock (_rules) { var rules = new List <IRule>(); foreach (var rule in UnderlyingObject.Rules) { if (rule is INetFwRule3) { rules.Add(new StandardRuleWin8((INetFwRule3)rule)); } else if (rule is INetFwRule2) { rules.Add(new StandardRuleWin7((INetFwRule2)rule)); } else if (rule is INetFwRule) { rules.Add(new StandardRule((INetFwRule)rule)); } } _rules.ItemsModified -= RulesOnItemsModified; _rules.Sync(rules.ToArray()); _rules.ItemsModified += RulesOnItemsModified; } }
private void SyncRules() { lock (_rules) { var rules = new List <IRule>(); foreach (var rule in UnderlyingObject.Rules) { // ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull if (rule is INetFwRule3) { rules.Add(new StandardRuleWin8((INetFwRule3)rule)); } else if (rule is INetFwRule2) { rules.Add(new StandardRuleWin7((INetFwRule2)rule)); } else if (rule is INetFwRule) { rules.Add(new StandardRule((INetFwRule)rule)); } } _rules.ItemsModified -= RulesOnItemsModified; _rules.Sync(rules.ToArray()); _rules.ItemsModified += RulesOnItemsModified; } }