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;
     }
 }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
 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;
     }
 }