Skip to content

Commit

Permalink
Merge pull request #217 from BornToBeRoot/ping
Browse files Browse the repository at this point in the history
Ping Monitor added
  • Loading branch information
BornToBeRoot committed Oct 19, 2019
2 parents 2d5217e + dcf0cb6 commit d769dcc
Show file tree
Hide file tree
Showing 34 changed files with 1,857 additions and 81 deletions.
8 changes: 7 additions & 1 deletion Source/NETworkManager/ApplicationViewManager.cs
Expand Up @@ -36,7 +36,9 @@ public static string GetTranslatedNameByName(Name name)
return Resources.Localization.Strings.PortScanner;
case Name.Ping:
return Resources.Localization.Strings.Ping;
case Name.Traceroute:
case Name.PingMonitor:
return Resources.Localization.Strings.PingMonitor;
case Name.Traceroute:
return Resources.Localization.Strings.Traceroute;
case Name.DNSLookup:
return Resources.Localization.Strings.DNSLookup;
Expand Down Expand Up @@ -95,6 +97,9 @@ public static Canvas GetIconByName(Name name)
case Name.Ping:
canvas.Children.Add(new PackIconMaterial { Kind = PackIconMaterialKind.LanConnect });
break;
case Name.PingMonitor:
canvas.Children.Add(new PackIconModern { Kind = PackIconModernKind.RadarScreen });
break;
case Name.Traceroute:
canvas.Children.Add(new PackIconModern { Kind = PackIconModernKind.TransitConnection });
break;
Expand Down Expand Up @@ -157,6 +162,7 @@ public enum Name
IPScanner,
PortScanner,
Ping,
PingMonitor,
Traceroute,
DNSLookup,
RemoteDesktop,
Expand Down
9 changes: 9 additions & 0 deletions Source/NETworkManager/MainWindow.xaml.cs
Expand Up @@ -474,6 +474,7 @@ private async void MetroWindowMain_Closing(object sender, CancelEventArgs e)
private IPScannerHostView _ipScannerHostView;
private PortScannerHostView _portScannerHostView;
private PingHostView _pingHostView;
private PingMonitorView _pingMonitorView;
private TracerouteHostView _tracerouteHostView;
private DNSLookupHostView _dnsLookupHostView;
private RemoteDesktopHostView _remoteDesktopHostView;
Expand Down Expand Up @@ -568,6 +569,14 @@ private void ChangeApplicationView(ApplicationViewManager.Name name, bool refres

ContentControlApplication.Content = _pingHostView;
break;
case ApplicationViewManager.Name.PingMonitor:
if (_pingMonitorView == null)
_pingMonitorView = new PingMonitorView();
else
_pingMonitorView.OnViewVisible();

ContentControlApplication.Content = _pingMonitorView;
break;
case ApplicationViewManager.Name.Traceroute:
if (_tracerouteHostView == null)
_tracerouteHostView = new TracerouteHostView();
Expand Down
5 changes: 2 additions & 3 deletions Source/NETworkManager/Models/Network/Ping.cs
Expand Up @@ -9,8 +9,7 @@ namespace NETworkManager.Models.Network
{
public class Ping
{
#region Varaibles
public int Attempts = 0;
#region Varaibles
public int WaitTime = 1000;
public int Timeout = 4000;
public byte[] Buffer = new byte[32];
Expand Down Expand Up @@ -133,7 +132,7 @@ public void SendAsync(IPAddress ipAddress, CancellationToken cancellationToken)
if (cancellationToken.IsCancellationRequested)
break;
}
} while ((Attempts == 0 || pingTotal < Attempts) && !cancellationToken.IsCancellationRequested);
} while (!cancellationToken.IsCancellationRequested);
}
if (cancellationToken.IsCancellationRequested)
Expand Down
16 changes: 16 additions & 0 deletions Source/NETworkManager/Models/Network/PingMonitorOptions.cs
@@ -0,0 +1,16 @@
using System.Net;

namespace NETworkManager.Models.Network
{
public class PingMonitorOptions
{
public string Host { get; set; }
public IPAddress IPAddress { get; set; }

public PingMonitorOptions(string host, IPAddress ipAddress)
{
Host = host;
IPAddress = ipAddress;
}
}
}
4 changes: 4 additions & 0 deletions Source/NETworkManager/Models/Settings/ProfileInfo.cs
Expand Up @@ -35,6 +35,10 @@ public class ProfileInfo
public bool Ping_InheritHost { get; set; } = true;
public string Ping_Host { get; set; }

public bool PingMonitor_Enabled { get; set; }
public bool PingMonitor_InheritHost { get; set; } = true;
public string PingMonitor_Host { get; set; }

public bool Traceroute_Enabled { get; set; }
public bool Traceroute_InheritHost { get; set; } = true;
public string Traceroute_Host { get; set; }
Expand Down
4 changes: 4 additions & 0 deletions Source/NETworkManager/Models/Settings/ProfileManager.cs
Expand Up @@ -160,6 +160,10 @@ public static void AddProfile(ProfileViewModel instance)
Ping_InheritHost = instance.Ping_InheritHost,
Ping_Host = instance.Ping_InheritHost ? instance.Host?.Trim() : instance.Ping_Host?.Trim(),

PingMonitor_Enabled = instance.PingMonitor_Enabled,
PingMonitor_InheritHost = instance.PingMonitor_InheritHost,
PingMonitor_Host = instance.PingMonitor_InheritHost ? instance.Host?.Trim() : instance.PingMonitor_Host?.Trim(),

Traceroute_Enabled = instance.Traceroute_Enabled,
Traceroute_InheritHost = instance.Traceroute_InheritHost,
Traceroute_Host = instance.Traceroute_InheritHost ? instance.Host?.Trim() : instance.Traceroute_Host?.Trim(),
Expand Down
78 changes: 63 additions & 15 deletions Source/NETworkManager/Models/Settings/SettingsInfo.cs
Expand Up @@ -1192,21 +1192,6 @@ public ExportManager.ExportFileType PortScanner_ExportFileType
#endregion

#region Ping
private int _ping_Attempts;
public int Ping_Attempts
{
get => _ping_Attempts;
set
{
if (value == _ping_Attempts)
return;

_ping_Attempts = value;
OnPropertyChanged();
SettingsChanged = true;
}
}

private int _ping_Buffer = GlobalStaticConfiguration.Ping_Buffer;
public int Ping_Buffer
{
Expand Down Expand Up @@ -1433,6 +1418,69 @@ public bool Ping_HighlightTimeouts
}
#endregion

#region Ping Monitor
private ObservableCollection<string> _pingMonitor_HostHistory = new ObservableCollection<string>();
public ObservableCollection<string> PingMonitor_HostHistory
{
get => _pingMonitor_HostHistory;
set
{
if (value == _pingMonitor_HostHistory)
return;

_pingMonitor_HostHistory = value;
OnPropertyChanged();
SettingsChanged = true;
}
}

private bool _pingMonitor_ResolveHostnamePreferIPv4 = true;
public bool PingMonitor_ResolveHostnamePreferIPv4
{
get => _pingMonitor_ResolveHostnamePreferIPv4;
set
{
if (value == _pingMonitor_ResolveHostnamePreferIPv4)
return;

_pingMonitor_ResolveHostnamePreferIPv4 = value;
OnPropertyChanged();
SettingsChanged = true;
}
}


private bool _pingMonitor_ExpandProfileView = true;
public bool PingMonitor_ExpandProfileView
{
get => _pingMonitor_ExpandProfileView;
set
{
if (value == _pingMonitor_ExpandProfileView)
return;

_pingMonitor_ExpandProfileView = value;
OnPropertyChanged();
SettingsChanged = true;
}
}

private double _pingMonitor_ProfileWidth = GlobalStaticConfiguration.Profile_DefaultWidthExpanded;
public double PingMonitor_ProfileWidth
{
get => _pingMonitor_ProfileWidth;
set
{
if (Math.Abs(value - _pingMonitor_ProfileWidth) < GlobalStaticConfiguration.FloatPointFix)
return;

_pingMonitor_ProfileWidth = value;
OnPropertyChanged();
SettingsChanged = true;
}
}
#endregion

#region Traceroute
private ObservableCollection<string> _traceroute_HostHistory = new ObservableCollection<string>();
public ObservableCollection<string> Traceroute_HostHistory
Expand Down
18 changes: 18 additions & 0 deletions Source/NETworkManager/NETworkManager.csproj
Expand Up @@ -180,6 +180,7 @@
<Compile Include="Models\Network\BandwidthMeterSpeedArgs.cs" />
<Compile Include="Models\Network\DNSServer.cs" />
<Compile Include="Models\Network\DNSServerInfo.cs" />
<Compile Include="Models\Network\PingMonitorOptions.cs" />
<Compile Include="Models\Network\WiFiAdapterInfo.cs" />
<Compile Include="Models\Network\WiFiNetworkInfo.cs" />
<Compile Include="Models\Network\WiFi.cs" />
Expand Down Expand Up @@ -230,6 +231,7 @@
<Compile Include="Models\EventSystem\EventSystemRedirectProfileApplicationArgs.cs" />
<Compile Include="Models\EventSystem\EventSystemRedirectDataApplicationArgs.cs" />
<Compile Include="Models\EventSystem\EventSystem.cs" />
<Compile Include="Utilities\DnsLookupHelper.cs" />
<Compile Include="Utilities\FileSizeConverter.cs" />
<Compile Include="Utilities\JsonIPAddressConverter.cs" />
<Compile Include="Utilities\NativeMethods.cs" />
Expand Down Expand Up @@ -268,6 +270,8 @@
<Compile Include="Validators\HttpAndHttpsUriValidator.cs" />
<Compile Include="Validators\IPv4IPv6SubnetValidator.cs" />
<Compile Include="ViewModels\CustomCommandViewModel.cs" />
<Compile Include="ViewModels\PingMonitorViewModel.cs" />
<Compile Include="ViewModels\PingMonitorHostViewModel.cs" />
<Compile Include="ViewModels\WiFiViewModel.cs" />
<Compile Include="ViewModels\FirstRunViewModel.cs" />
<Compile Include="Models\Settings\IProfileManager.cs" />
Expand Down Expand Up @@ -340,6 +344,12 @@
<Compile Include="Views\CustomCommandDialog.xaml.cs">
<DependentUpon>CustomCommandDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Views\PingMonitorView.xaml.cs">
<DependentUpon>PingMonitorView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\PingMonitorHostView.xaml.cs">
<DependentUpon>PingMonitorHostView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\WiFiView.xaml.cs">
<DependentUpon>WiFiView.xaml</DependentUpon>
</Compile>
Expand Down Expand Up @@ -689,6 +699,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\PingMonitorView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\PingMonitorHostView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\WiFiView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down
4 changes: 4 additions & 0 deletions Source/NETworkManager/ProfileViewManager.cs
Expand Up @@ -16,6 +16,7 @@ public static class ProfileViewManager
new ProfileViewInfo(Name.IPScanner, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.IPScanner)),
new ProfileViewInfo(Name.PortScanner,ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.PortScanner)),
new ProfileViewInfo(Name.Ping, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.Ping)),
new ProfileViewInfo(Name.PingMonitor, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.PingMonitor)),
new ProfileViewInfo(Name.Traceroute, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.Traceroute)),
new ProfileViewInfo(Name.DNSLookup, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.DNSLookup)),
new ProfileViewInfo(Name.RemoteDesktop, ApplicationViewManager.GetIconByName(ApplicationViewManager.Name.RemoteDesktop)),
Expand All @@ -41,6 +42,8 @@ public static string TranslateName(Name name)
return Resources.Localization.Strings.PortScanner;
case Name.Ping:
return Resources.Localization.Strings.Ping;
case Name.PingMonitor:
return Resources.Localization.Strings.PingMonitor;
case Name.Traceroute:
return Resources.Localization.Strings.Traceroute;
case Name.DNSLookup:
Expand Down Expand Up @@ -71,6 +74,7 @@ public enum Name
IPScanner,
PortScanner,
Ping,
PingMonitor,
Traceroute,
DNSLookup,
RemoteDesktop,
Expand Down
45 changes: 45 additions & 0 deletions Source/NETworkManager/Resources/Localization/Strings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions Source/NETworkManager/Resources/Localization/Strings.resx
Expand Up @@ -2453,4 +2453,19 @@ URL: https://github.com/BornToBeRoot/NETworkManager/issues/new/choose</value>
<data name="ShowErrorMessage" xml:space="preserve">
<value>Show error message</value>
</data>
<data name="PingMonitor" xml:space="preserve">
<value>Ping Monitor</value>
</data>
<data name="AddHost" xml:space="preserve">
<value>Add host</value>
</data>
<data name="AddAHostToMonitor" xml:space="preserve">
<value>Add a host to monitor</value>
</data>
<data name="Pause" xml:space="preserve">
<value>Pause</value>
</data>
<data name="Resume" xml:space="preserve">
<value>Resume</value>
</data>
</root>

0 comments on commit d769dcc

Please sign in to comment.