diff --git a/BodyshopUploader/Properties/AssemblyInfo.cs b/BodyshopUploader/Properties/AssemblyInfo.cs
index ed5e0f3..4a24647 100644
--- a/BodyshopUploader/Properties/AssemblyInfo.cs
+++ b/BodyshopUploader/Properties/AssemblyInfo.cs
@@ -51,7 +51,7 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.4")]
-[assembly: AssemblyFileVersion("1.0.3")]
+[assembly: AssemblyVersion("1.0.4.0")]
+[assembly: AssemblyFileVersion("1.0.4.0")]
//Setting Squirrel Aware Version.
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
\ No newline at end of file
diff --git a/BodyshopUploader/Utils/HTTPServer.cs b/BodyshopUploader/Utils/HTTPServer.cs
index db17851..2e90c51 100644
--- a/BodyshopUploader/Utils/HTTPServer.cs
+++ b/BodyshopUploader/Utils/HTTPServer.cs
@@ -10,6 +10,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using BodyshopPartner.Models;
using ToastNotifications.Messages;
+using System.Threading;
namespace BodyshopPartner.Utils
{
@@ -18,6 +19,9 @@ namespace BodyshopPartner.Utils
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public delegate void HttpLogger(string s);
private static HttpLogger hlog;
+ public static CancellationTokenSource tokenSource = new CancellationTokenSource();
+ public static CancellationToken token = tokenSource.Token;
+
public static void InitHttpServer(HttpLogger HttpLogger)
{
Route.Add("/qb/", (req, res, props) =>
@@ -34,12 +38,13 @@ namespace BodyshopPartner.Utils
logger.Trace("Starting HTTP server...");
hlog = HttpLogger;
-
+
//TODO As a part of the installer, add netsh http add urlacl url=http://+:1337/ user="Everyone
try
{
- HttpServer.ListenAsync(1337, System.Threading.CancellationToken.None, Route.OnHttpRequestAsync).Wait();
- hlog("ImEX Online connection server started...");
+ hlog("ImEX Online connection server starting...");
+ HttpServer.ListenAsync(1337, token, Route.OnHttpRequestAsync).Wait();
+
}
catch (Exception Ex)
{
@@ -49,8 +54,8 @@ namespace BodyshopPartner.Utils
string msg = "Unable to connect to ImEX Online Web App. Please ensure your firewall allows the connection.";
hlog("ImEX Online connection server could not start. Please restart the partner to try again.");
Utils.Notifications.notifier.ShowError(msg);
- bool AddedException = Utils.SquirrelAwareHelper.AddHttpExcetion();
-
+ bool AddedException = Utils.SquirrelAwareHelper.AddHttpExcetion();
+
//Growler.AddNotification(new Notification()
//{
// Title = Properties.Resources.Msg_NewJobUploaded,
@@ -58,6 +63,7 @@ namespace BodyshopPartner.Utils
// //Message = item.Job?.vehicle?.data?.v_model_yr?.Value + " " + item.Job?.vehicle?.data?.v_make_desc?.Value + " " + item.Job?.vehicle?.data?.v_model_desc?.Value
//});
});
+ Utils.SquirrelAwareHelper.AddHttpExcetion();
}
}
diff --git a/BodyshopUploader/Utils/Queries/JobsQueries.cs b/BodyshopUploader/Utils/Queries/JobsQueries.cs
index 5fa134d..edcfb0c 100644
--- a/BodyshopUploader/Utils/Queries/JobsQueries.cs
+++ b/BodyshopUploader/Utils/Queries/JobsQueries.cs
@@ -32,7 +32,7 @@ namespace BodyshopPartner.Utils.Queries
try
{
var d = await Utils.GraphQL.ExecuteQuery(r);
- return d.jobs?[0].id;
+ return d?.jobs?[0]?.id;
}
catch (ArgumentOutOfRangeException Ex)
diff --git a/BodyshopUploader/Utils/SquirrelAwareHelper.cs b/BodyshopUploader/Utils/SquirrelAwareHelper.cs
index 14e9fcd..aaecd53 100644
--- a/BodyshopUploader/Utils/SquirrelAwareHelper.cs
+++ b/BodyshopUploader/Utils/SquirrelAwareHelper.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -13,14 +14,35 @@ namespace BodyshopPartner.Utils
public static bool AddHttpExcetion()
{
logger.Debug("Attempting to add HTTP Exclusion for web-server");
- System.Diagnostics.Process process = new System.Diagnostics.Process();
- System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
- startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
- startInfo.FileName = "cmd.exe";
- startInfo.Arguments = "netsh http add urlacl url=http://+:1337/ user=\"Everyone\"";
- startInfo.Verb = "runas";
- process.StartInfo = startInfo;
- return process.Start();
+
+ string args = string.Format(@"http add urlacl url={0} user={1}", "http://+:1337/", "Everyone");
+
+ ProcessStartInfo psi = new ProcessStartInfo("netsh", args);
+ psi.Verb = "runas";
+ psi.CreateNoWindow = true;
+ psi.WindowStyle = ProcessWindowStyle.Hidden;
+ psi.UseShellExecute = true;
+ try
+ {
+ Process.Start(psi).WaitForExit();
+ logger.Debug("Attempting to add HTTP Exclusion for web-server");
+ return true;
+ }
+ catch (Exception Ex)
+ {
+ logger.Error("Unable to register exception " + Ex.ToString());
+ return false;
+ }
+
+
+ // System.Diagnostics.Process process = new System.Diagnostics.Process();
+ // System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
+ // startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
+ // startInfo.FileName = "cmd.exe";
+ // startInfo.Arguments = "netsh http add urlacl url=http://+:1337/ user=\"Everyone\"";
+ // startInfo.Verb = "runas";
+ // process.StartInfo = startInfo;
+ //return process.Start();
}
public static void InitializeSquirrelAware()
@@ -35,7 +57,7 @@ namespace BodyshopPartner.Utils
logger.Debug("Installing via Squirrel Aware Helper. ", v);
try
{
-
+
bool successful = AddHttpExcetion();
if (successful)
diff --git a/BodyshopUploader/ViewModels/MainViewModel.cs b/BodyshopUploader/ViewModels/MainViewModel.cs
index 8d9a173..5623bc3 100644
--- a/BodyshopUploader/ViewModels/MainViewModel.cs
+++ b/BodyshopUploader/ViewModels/MainViewModel.cs
@@ -208,7 +208,7 @@ namespace BodyshopPartner.ViewModels
if (string.IsNullOrEmpty(SettingsSelectedShopUuid))
{
ActiveShop = ShopData[0] ?? null;
- Properties.Settings.Default.LastSelectedShop = ShopData[0].Id ?? null;
+ Properties.Settings.Default.LastSelectedShop = ShopData[0]?.Id ?? null;
Properties.Settings.Default.Save();
}
else
@@ -262,33 +262,7 @@ namespace BodyshopPartner.ViewModels
public async Task TestGql()
{
- try
- {
- logger.Debug("Attempting to add HTTP Exclusion for web-server");
- System.Diagnostics.Process process = new System.Diagnostics.Process();
- System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
- startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
- startInfo.FileName = "cmd.exe";
- startInfo.Arguments = "add netsh http add urlacl url=http://+:1337/ user=\"Everyone\"";
- startInfo.Verb = "runas";
- process.StartInfo = startInfo;
- bool successful = process.Start();
- if (successful)
- {
- logger.Debug("Successfully added exception.");
- }
- else
- {
- logger.Fatal("Unable to set exception for http port");
- AddHttpStatus("Unable to add exception for the port! Please run as an administrator.");
-
- }
-
- }
- catch (Exception Ex)
- {
- logger.Fatal("Unable to set exception for http port", Ex.ToString());
- }
+ Utils.SquirrelAwareHelper.AddHttpExcetion();
}
}
diff --git a/BodyshopUploader/Views/Main.xaml b/BodyshopUploader/Views/Main.xaml
index 72a3e7f..d9bdb7d 100644
--- a/BodyshopUploader/Views/Main.xaml
+++ b/BodyshopUploader/Views/Main.xaml
@@ -4,7 +4,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:tb="http://www.hardcodet.net/taskbar"
xmlns:p="clr-namespace:BodyshopPartner.Properties"
xmlns:properties="clr-namespace:BodyshopPartner.Properties"
xmlns:util="clr-namespace:BodyshopPartner.Utils"
@@ -21,7 +20,8 @@
Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{DynamicResource MaterialDesignFont}"
Loaded="Window_Loaded"
- Closing="Window_Closing">
+ Closing="Window_Closing"
+ >
@@ -54,7 +54,7 @@
IsIndeterminate="{Binding IndeterminateLoading}"
Height="8" />
-
-
+ -->
diff --git a/BodyshopUploader/Views/Main.xaml.cs b/BodyshopUploader/Views/Main.xaml.cs
index 179e941..a4b69bd 100644
--- a/BodyshopUploader/Views/Main.xaml.cs
+++ b/BodyshopUploader/Views/Main.xaml.cs
@@ -32,8 +32,10 @@ namespace BodyshopPartner.Views
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
- e.Cancel = true ;
- this.Hide();
+ //e.Cancel = true ;
+ //this.Hide();
+ Utils.HTTPServer.tokenSource.Cancel();
+ Application.Current.Shutdown();
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
@@ -41,5 +43,6 @@ namespace BodyshopPartner.Views
Properties.Settings.Default.QuickBooksFilePath = ((System.Windows.Controls.TextBox)sender).Text;
Properties.Settings.Default.Save();
}
+
}
}