private void PrepareTestRule(NetShHelper sut, string name, int port) { var createResult = sut.CreateFirewallRule(name, port); if (createResult == false) { sut.DeleteFirewallRule(name).Should().BeTrue(); createResult = sut.CreateFirewallRule(name, port); } createResult.Should().BeTrue(); var getResult = sut.GetFirewallRule(name); getResult.Should().NotBeNull(); getResult.Rules.First().LocalPort.Should().Be(port); }
public void ShouldBeAbleToCreateFirewallRule() { Skip.If(!PermissionsHelper.IsRunAsAdministrator(), "require administrator permissions"); var sut = new NetShHelper(); var result = sut.CreateFirewallRule(TestRuleName(nameof(ShouldBeAbleToCreateFirewallRule)), TestPorts + 1); result.Should().BeTrue(); }
private void SetFirewallRule() { var port = Settings.Default.OverrideNetworkSettings ? int.Parse(Settings.Default.PortNumber) : _defaultPort; var firewallRules = _netShHelper.GetFirewallRule(GeneralInformation.ApplicationName); if (firewallRules.Rules.Any()) { if (firewallRules.Rules.All(e => e.LocalPort != port)) { var result = _netShHelper.UpdateFirewallRule(GeneralInformation.ApplicationName, port); if (!result) { MessageBox.Show( $"Sorry, {GeneralInformation.ApplicationName} cannot update firewall rule. Please allow next time or try to run as Administrator.", $"{GeneralInformation.ApplicationName} can't start service.", MessageBoxButton.OK, MessageBoxImage.Information); } } } else { var result = _netShHelper.CreateFirewallRule(GeneralInformation.ApplicationName, port); if (!result) { MessageBox.Show( $"Sorry, {GeneralInformation.ApplicationName} cannot add firewall rule. Please try to run as Administrator.", $"{GeneralInformation.ApplicationName} can't start service.", MessageBoxButton.OK, MessageBoxImage.Information); } } }