Refactor:

Move NatTest to MainForm
  Move call NetTraffic() NatTest() to ControlButton_Click()
This commit is contained in:
ChsBuffer
2021-01-26 21:50:33 +08:00
parent df48eb3067
commit 019044c275
2 changed files with 36 additions and 36 deletions

View File

@@ -21,9 +21,7 @@ namespace Netch.Controllers
private static Server _udpServer;
public static bool NttTested;
private static readonly NTTController NTTController = new();
public static readonly NTTController NTTController = new();
private static IServerController _serverController;
private static IServerController _udpServerController;
@@ -97,9 +95,6 @@ namespace Netch.Controllers
if (!await StartMode(mode))
throw new StartFailedException();
_ = Task.Run(Bandwidth.NetTraffic);
_ = Task.Run(NatTest);
return true;
}
catch (Exception e)
@@ -232,34 +227,6 @@ namespace Netch.Controllers
return false;
}
}
/// <summary>
/// 测试 NAT
/// </summary>
public static void NatTest()
{
if (!Mode.TestNatRequired())
return;
NttTested = false;
Task.Run(() =>
{
Global.MainForm.NatTypeStatusText(i18N.Translate("Starting NatTester"));
// Thread.Sleep(1000);
var (result, localEnd, publicEnd) = NTTController.Start();
if (!string.IsNullOrEmpty(publicEnd))
{
var country = Utils.Utils.GetCityCode(publicEnd);
Global.MainForm.NatTypeStatusText(result, country);
}
else
{
Global.MainForm.NatTypeStatusText(result ?? "Error");
}
NttTested = true;
});
}
}
public class StartFailedException : Exception

View File

@@ -599,6 +599,9 @@ namespace Netch.Forms
State = State.Started;
_ = Task.Run(Bandwidth.NetTraffic);
_ = Task.Run(NatTest);
if (Global.Settings.MinimizeWhenStarted)
Minimize();
@@ -1255,8 +1258,38 @@ namespace Netch.Forms
private void NatTypeStatusLabel_Click(object sender, EventArgs e)
{
if (_state == State.Started && MainController.NttTested)
MainController.NatTest();
if (_state == State.Started && NttTested)
NatTest();
}
private static bool NttTested;
/// <summary>
/// 测试 NAT
/// </summary>
public void NatTest()
{
if (!MainController.Mode.TestNatRequired())
return;
NttTested = false;
Task.Run(() =>
{
NatTypeStatusText(i18N.Translate("Starting NatTester"));
// Thread.Sleep(1000);
var (result, localEnd, publicEnd) = MainController.NTTController.Start();
if (!string.IsNullOrEmpty(publicEnd))
{
var country = Utils.Utils.GetCityCode(publicEnd);
NatTypeStatusText(result, country);
}
else
{
NatTypeStatusText(result ?? "Error");
}
NttTested = true;
});
}
#endregion