diff --git a/FirstTimeWizard.xaml.cs b/FirstTimeWizard.xaml.cs index bcf35ed..ed46528 100644 --- a/FirstTimeWizard.xaml.cs +++ b/FirstTimeWizard.xaml.cs @@ -49,7 +49,7 @@ private void _ngrokManager_DownloadAndUnZipDone(object sender, EventArgs e) private void BtnDownload_OnClick(object sender, RoutedEventArgs e) { - if (btnDownload.Content == "Next") + if ((string)btnDownload.Content == "Next") { tabcl.SelectedIndex = 1; return; diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index f0a456b..cf52d2c 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -16,6 +16,8 @@ public partial class MainWindow : Window { private readonly INgrokManager _ngrokManager; private readonly ObservableCollection _tunnelDescriptions; + private readonly string _downloadFolder = + $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar}NgrokSharp{Path.DirectorySeparatorChar}"; private bool PaidAccount; public MainWindow() @@ -27,11 +29,18 @@ public MainWindow() _ngrokManager = new NgrokManager(); + + if (!File.Exists($"{_downloadFolder}Settings.json")) + { + Directory.CreateDirectory(_downloadFolder); + File.WriteAllText($"{_downloadFolder}Settings.json", "{\r\n \"firstTimeSetupDone\": false\r\n}"); + } + Settings settings; try { //Load settings - settings = JsonConvert.DeserializeObject(File.ReadAllText("Settings.json")); + settings = JsonConvert.DeserializeObject(File.ReadAllText($"{_downloadFolder}Settings.json")); if (settings.FirstTimeSetupDone == false) { @@ -44,17 +53,18 @@ public MainWindow() settings.DataCenterRegion = firstTimeWizard.cmbTunnelExit.SelectedIndex; settings.PaidAccount = (bool) firstTimeWizard.cbxPaidAccount.IsChecked; - File.WriteAllText("Settings.json", JsonConvert.SerializeObject(settings)); + File.WriteAllText($"{_downloadFolder}Settings.json", JsonConvert.SerializeObject(settings)); } } PaidAccount = settings.PaidAccount; - sbStatus.Content = "connected to " + (NgrokManager.Region)settings.DataCenterRegion; + sbStatus.Content = $"connected to {(NgrokManager.Region)settings.DataCenterRegion}"; _ngrokManager.StartNgrok((NgrokManager.Region)settings.DataCenterRegion); - if (File.Exists("SavedTunnels.json")) + if (File.Exists($"{_downloadFolder}SavedTunnels.json")) { - JsonConvert.DeserializeObject>(File.ReadAllText("SavedTunnels.json"))?.ForEach( x => _tunnelDescriptions.Add(x)); + JsonConvert.DeserializeObject>(File.ReadAllText( + $"{_downloadFolder}SavedTunnels.json"))?.ForEach( x => _tunnelDescriptions.Add(x)); } } @@ -139,7 +149,7 @@ private void Window_Closed(object sender, EventArgs e) } } - File.WriteAllText(@"SavedTunnels.json", JsonConvert.SerializeObject(_tunnelDescriptions)); + File.WriteAllText($"{_downloadFolder}SavedTunnels.json", JsonConvert.SerializeObject(_tunnelDescriptions)); } @@ -177,7 +187,7 @@ private void BtnMenuItemRunFirstTimeWizard_OnClick(object sender, RoutedEventArg if (result == MessageBoxResult.Yes) { Settings settings = new Settings {FirstTimeSetupDone = false}; - File.WriteAllText("Settings.json", JsonConvert.SerializeObject(settings)); + File.WriteAllText($"{_downloadFolder}Settings.json", JsonConvert.SerializeObject(settings)); Close(); } } @@ -235,8 +245,8 @@ private async void btnMenuItemDeleteTunnel_OnClick(object sender, RoutedEventArg var result = await _ngrokManager.StopTunnel(_tunnelDescriptions[lwTunnels.SelectedIndex].Name); } - var tunnel = _tunnelDescriptions.SingleOrDefault(x => x.Name == _tunnelDescriptions[lwTunnels.SelectedIndex].Name); - _tunnelDescriptions.Remove(tunnel); + var tunnel = _tunnelDescriptions.SingleOrDefault(x => x.Name == _tunnelDescriptions[lwTunnels.SelectedIndex].Name); + _tunnelDescriptions.Remove(tunnel); } } diff --git a/ngrokGUI.csproj b/ngrokGUI.csproj index 5177704..cf4e344 100644 --- a/ngrokGUI.csproj +++ b/ngrokGUI.csproj @@ -5,6 +5,7 @@ net5.0-windows true icons8-tunnel-256.ico + ngrokGUI @@ -35,10 +36,4 @@ - - - Always - - - \ No newline at end of file