From 29f2c62be9e0bab3f846a5f778c8becdb9bc087c Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 20:49:24 -0400 Subject: [PATCH 01/50] Update NonInvasiveKeyboardHookLibrary NuGet package --- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 2 +- src/InvvardDev.EZLayoutDisplay.Desktop/packages.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index f4e87b10..a413d8e1 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -75,7 +75,7 @@ ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - ..\packages\NonInvasiveKeyboardHookLibrary.1.3.0\lib\net452\NonInvasiveKeyboardHookLibrary.dll + ..\packages\NonInvasiveKeyboardHookLibrary.1.4.0\lib\net452\NonInvasiveKeyboardHookLibrary.dll diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config index 46d91e8b..9bdb68c4 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config @@ -4,5 +4,5 @@ - + \ No newline at end of file From 3626f3dde3814676dc15e7e642067909e48873c2 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 20:52:04 -0400 Subject: [PATCH 02/50] Add NLog NuGet package --- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 8 ++++++++ src/InvvardDev.EZLayoutDisplay.Desktop/packages.config | 1 + 2 files changed, 9 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index a413d8e1..918a78a6 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -74,12 +74,20 @@ ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll + + ..\packages\NLog.4.5.11\lib\net45\NLog.dll + ..\packages\NonInvasiveKeyboardHookLibrary.1.4.0\lib\net452\NonInvasiveKeyboardHookLibrary.dll + + + + + ..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config index 9bdb68c4..8a5d7ae9 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config @@ -4,5 +4,6 @@ + \ No newline at end of file From c3329da7a5867836e2cfb9fa8b18802a984239ba Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 21:00:27 -0400 Subject: [PATCH 03/50] Add the basic NLog config file --- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 3 +++ .../Properties/NLog.config | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 918a78a6..98bd7cb5 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -214,6 +214,9 @@ + + Always + PublicSettingsSingleFileGenerator Settings.Designer.cs diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config new file mode 100644 index 00000000..a98393a1 --- /dev/null +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file From 72d0bfc16a54d5c2fd516119c1634771385983f6 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 22:57:21 -0400 Subject: [PATCH 04/50] Edit NLog configuration --- .../Properties/NLog.config | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config index a98393a1..3b1a3fd6 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config @@ -1,9 +1,10 @@  + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + throwConfigExceptions="true"> - - + + From 284c6c5821e0b26885cba4c9ff541157dde31ff3 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 22:59:32 -0400 Subject: [PATCH 05/50] Add the LoggingService interface --- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 1 + .../Service/Interface/ILoggingService.cs | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 src/InvvardDev.EZLayoutDisplay.Desktop/Service/Interface/ILoggingService.cs diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 98bd7cb5..79d3fc48 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -150,6 +150,7 @@ + diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Interface/ILoggingService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Interface/ILoggingService.cs new file mode 100644 index 00000000..67fd99a8 --- /dev/null +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Interface/ILoggingService.cs @@ -0,0 +1,7 @@ +namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Interface +{ + public interface ILoggingService + { + + } +} \ No newline at end of file From b3c4faa194ad80c8b3404b20577bc7b0a5e3d652 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 12 Mar 2019 23:21:25 -0400 Subject: [PATCH 06/50] Edit NLog configuration --- .../Properties/NLog.config | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config index 3b1a3fd6..fd9c8c37 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config @@ -4,7 +4,16 @@ throwConfigExceptions="true"> - + From bd966fee3ede7b13b61801e6eed3397df282b329 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Fri, 15 Mar 2019 22:31:30 -0400 Subject: [PATCH 07/50] Add ApplicationInsights NuGet package --- .../KeyDefinitionProcessor.cs | 3 +-- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 6 ++++++ src/InvvardDev.EZLayoutDisplay.Desktop/packages.config | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs index 23ffae37..2d999f80 100644 --- a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs +++ b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading.Tasks; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; using Newtonsoft.Json; @@ -16,7 +15,7 @@ public class KeyDefinitionProcessor public KeyDefinitionProcessor() { } - public async void RunProcess() + public void RunProcess() { if (!CheckKeyDefinitionJsExists()) { diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 79d3fc48..7cecd172 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -71,6 +71,9 @@ ..\packages\Hardcodet.NotifyIcon.Wpf.1.0.8\lib\net451\Hardcodet.Wpf.TaskbarNotification.dll + + ..\packages\Microsoft.ApplicationInsights.2.9.1\lib\net46\Microsoft.ApplicationInsights.dll + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll @@ -83,6 +86,9 @@ + + ..\packages\System.Diagnostics.DiagnosticSource.4.5.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config index 8a5d7ae9..a3ec0a1e 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config @@ -2,8 +2,10 @@ + + \ No newline at end of file From ec6dd5fb5eded239065cf207f99fc88f0a3d9ed2 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Fri, 15 Mar 2019 22:37:40 -0400 Subject: [PATCH 08/50] Revert "Add ApplicationInsights NuGet package" This reverts commit 02f6e8dbc34f4eb145b6d6da9f2053c1877cc885. --- .../KeyDefinitionProcessor.cs | 3 ++- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 6 ------ src/InvvardDev.EZLayoutDisplay.Desktop/packages.config | 2 -- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs index 2d999f80..23ffae37 100644 --- a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs +++ b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Threading.Tasks; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; using Newtonsoft.Json; @@ -15,7 +16,7 @@ public class KeyDefinitionProcessor public KeyDefinitionProcessor() { } - public void RunProcess() + public async void RunProcess() { if (!CheckKeyDefinitionJsExists()) { diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 7cecd172..79d3fc48 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -71,9 +71,6 @@ ..\packages\Hardcodet.NotifyIcon.Wpf.1.0.8\lib\net451\Hardcodet.Wpf.TaskbarNotification.dll - - ..\packages\Microsoft.ApplicationInsights.2.9.1\lib\net46\Microsoft.ApplicationInsights.dll - ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll @@ -86,9 +83,6 @@ - - ..\packages\System.Diagnostics.DiagnosticSource.4.5.0\lib\net46\System.Diagnostics.DiagnosticSource.dll - diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config index a3ec0a1e..8a5d7ae9 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/packages.config @@ -2,10 +2,8 @@ - - \ No newline at end of file From 30cc5612e7ae81bc32d9ab66849ca0b15ce96008 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Fri, 15 Mar 2019 23:31:27 -0400 Subject: [PATCH 09/50] Move NLog.config to root --- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 2 +- .../{Properties => }/NLog.config | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) rename src/InvvardDev.EZLayoutDisplay.Desktop/{Properties => }/NLog.config (85%) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 79d3fc48..56a27833 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -215,7 +215,7 @@ - + Always diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config similarity index 85% rename from src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config rename to src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config index fd9c8c37..76c3ef7e 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Properties/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config @@ -6,7 +6,7 @@ + From c4b850129298c45402ef66b4b872683da4360eed Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Fri, 15 Mar 2019 23:37:46 -0400 Subject: [PATCH 10/50] Clean KeyDefinitionProcessor class --- .../KeyDefinitionProcessor.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs index 23ffae37..d6cedb62 100644 --- a/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs +++ b/src/InvvardDev.EZLayoutDisplay.Console/KeyDefinitionProcessor.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading.Tasks; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; using Newtonsoft.Json; @@ -14,9 +13,7 @@ public class KeyDefinitionProcessor private const string KeyDefinitionInputFilename = "keyDefinitions.json"; private const string KeyDefinitionOutputFilename = "keyDefinitions.output.json"; - public KeyDefinitionProcessor() { } - - public async void RunProcess() + public void RunProcess() { if (!CheckKeyDefinitionJsExists()) { From 80e719ad3e304f34798146c073cfb36fb399914a Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Fri, 15 Mar 2019 23:38:27 -0400 Subject: [PATCH 11/50] Add the DispatcherUnhandledException --- .../App.xaml.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs index 168f9fcb..4558da2f 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs @@ -1,4 +1,6 @@ -using GalaSoft.MvvmLight.Threading; +using System.Windows.Threading; +using GalaSoft.MvvmLight.Threading; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop { @@ -7,9 +9,20 @@ namespace InvvardDev.EZLayoutDisplay.Desktop /// public partial class App { + private static Logger _logger = LogManager.GetCurrentClassLogger(); + static App() { DispatcherHelper.Initialize(); } + + void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) + { + // Process unhandled exception + _logger.Error(e.Exception, "Unhandled exception"); + + // Prevent default unhandled exception processing + e.Handled = true; + } } } From 779373c7f5cdf0adf468dbf7f69b3c140a9ace36 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 17 Mar 2019 20:45:40 -0400 Subject: [PATCH 12/50] Changes the rolling time frame to 7u days --- src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config index 76c3ef7e..53868686 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config @@ -6,12 +6,12 @@ From 0ca7dc2c1d89bb62b32e5554dd59abbb1b2d025e Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 17 Mar 2019 21:11:34 -0400 Subject: [PATCH 13/50] Add logging to KeyDefinitionDictionary loader --- .../Dictionary/KeyDefinitionDictionary.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs index a51cc8d6..5f3f7c6a 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs @@ -1,12 +1,16 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Text; using InvvardDev.EZLayoutDisplay.Desktop.Properties; using Newtonsoft.Json; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Model.Dictionary { public class KeyDefinitionDictionary { + private static readonly Logger _logger = LogManager.GetCurrentClassLogger(); + public List KeyDefinitions { get; private set; } public KeyDefinitionDictionary() @@ -20,13 +24,21 @@ private void InitializeKeyDefinitions() if (Resources.keyDefinitions.Length <= 0) { - // TODO : add logging + _logger.Warn("KeyDefinitioins are missing from Resources"); return; } - var json = Encoding.Default.GetString(Resources.keyDefinitions); + try + { + var json = Encoding.Default.GetString(Resources.keyDefinitions); + var keyDefinitions = JsonConvert.DeserializeObject>(json); - KeyDefinitions.AddRange(JsonConvert.DeserializeObject>(json)); + KeyDefinitions.AddRange(keyDefinitions); + } + catch (Exception ex) + { + _logger.Fatal(ex); + } } } } \ No newline at end of file From ff3f6e1eadd7e5211ef1827cbbe24bbb9e675b09 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 17 Mar 2019 21:12:27 -0400 Subject: [PATCH 14/50] Update NLog XSD URL --- src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config index 53868686..e0c45300 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config @@ -1,5 +1,5 @@  - @@ -20,6 +20,5 @@ - \ No newline at end of file From ec45e221f6e8772899af993d5e65ac9feaba896d Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 17 Mar 2019 21:57:29 -0400 Subject: [PATCH 15/50] Add the log level --- src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config index e0c45300..54fa230a 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config @@ -7,7 +7,7 @@ Date: Sun, 17 Mar 2019 23:01:32 -0400 Subject: [PATCH 16/50] Remove default LogFile rule --- src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config | 1 - 1 file changed, 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config index 54fa230a..3ca14974 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/NLog.config @@ -18,7 +18,6 @@ - \ No newline at end of file From 32fe7d70daf1a382295f65a164babefa88ffe45b Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 17 Mar 2019 23:02:04 -0400 Subject: [PATCH 17/50] Add app args support and Log level adjustment --- .../App.xaml.cs | 81 ++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs index 4558da2f..01306570 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs @@ -1,6 +1,14 @@ -using System.Windows.Threading; +using System; +using System.Globalization; +using System.Linq; +using System.Text.RegularExpressions; +using System.Windows; +using System.Windows.Media.Animation; +using System.Windows.Threading; using GalaSoft.MvvmLight.Threading; using NLog; +using NLog.Targets; +using NLog.Targets.Wrappers; namespace InvvardDev.EZLayoutDisplay.Desktop { @@ -24,5 +32,74 @@ void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptio // Prevent default unhandled exception processing e.Handled = true; } + + protected override void OnStartup(StartupEventArgs e) + { + ProcessArgs(e.Args); + base.OnStartup(e); + } + + private void ProcessArgs(string[] args) + { + foreach (var arg in args) + { + switch (arg) + { + case var val when val.StartsWith("-loglevel=", true, CultureInfo.InvariantCulture): + (string key, string value) = SplitArg(arg); + + LogLevel level = GetLogLevel(value); + AdjustLogLevel(level); + + break; + } + } + } + + private (string, string) SplitArg(string arg) + { + var (key, value) = ("", ""); + var splitted = arg.Split('='); + + if (splitted.Length <= 1) return (key, value); + + key = splitted[0]; + value = splitted[1]; + + return (key, value); + } + + private LogLevel GetLogLevel(string value) + { + LogLevel level; + + switch (value.ToLower()) + { + case "debug": + level = LogLevel.Debug; + + break; + case "trace": + level = LogLevel.Trace; + + break; + default: + level = LogLevel.Warn; + + break; + } + + return level; + } + + private void AdjustLogLevel(LogLevel logLevel) + { + var target = LogManager.Configuration.FindTargetByName("logfile"); + + if (target != null) + { + LogManager.Configuration.AddRule(logLevel, LogLevel.Fatal, target); + } + } } -} +} \ No newline at end of file From 56366a1c50eb30af0e08e12a4ea73fd9fd1da87b Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 20:41:57 -0400 Subject: [PATCH 18/50] Create LoggerConfiguration --- .../Helper/LoggerConfguration.cs | 40 +++++++++++++++++++ .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 1 + 2 files changed, 41 insertions(+) create mode 100644 src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs new file mode 100644 index 00000000..c13daba2 --- /dev/null +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs @@ -0,0 +1,40 @@ +using NLog; + +namespace InvvardDev.EZLayoutDisplay.Desktop.Helper +{ + public class LoggerConfguration + { + internal static LogLevel GetLogLevel(string value) + { + LogLevel level; + + switch (value.ToLower()) + { + case "debug": + level = LogLevel.Debug; + + break; + case "trace": + level = LogLevel.Trace; + + break; + default: + level = LogLevel.Warn; + + break; + } + + return level; + } + + internal static void AdjustLogLevel(LogLevel logLevel) + { + var target = LogManager.Configuration.FindTargetByName("logfile"); + + if (target != null) + { + LogManager.Configuration.AddRule(logLevel, LogLevel.Fatal, target); + } + } + } +} \ No newline at end of file diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index 56a27833..f9aa331b 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -110,6 +110,7 @@ Designer + From 1b6b9dad4756b1a8da0287ee0e6ac6d869da51f0 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 20:42:34 -0400 Subject: [PATCH 19/50] Add DispatcherUnhandledException event handler --- .../App.xaml.cs | 67 ++++--------------- 1 file changed, 14 insertions(+), 53 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs index 01306570..5eb56382 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs @@ -1,14 +1,9 @@ -using System; -using System.Globalization; -using System.Linq; -using System.Text.RegularExpressions; +using System.Globalization; using System.Windows; -using System.Windows.Media.Animation; using System.Windows.Threading; using GalaSoft.MvvmLight.Threading; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using NLog; -using NLog.Targets; -using NLog.Targets.Wrappers; namespace InvvardDev.EZLayoutDisplay.Desktop { @@ -17,20 +12,12 @@ namespace InvvardDev.EZLayoutDisplay.Desktop /// public partial class App { - private static Logger _logger = LogManager.GetCurrentClassLogger(); + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - static App() + public App() { DispatcherHelper.Initialize(); - } - - void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) - { - // Process unhandled exception - _logger.Error(e.Exception, "Unhandled exception"); - - // Prevent default unhandled exception processing - e.Handled = true; + DispatcherUnhandledException += OnDispatcherUnhandledException; } protected override void OnStartup(StartupEventArgs e) @@ -39,6 +26,13 @@ protected override void OnStartup(StartupEventArgs e) base.OnStartup(e); } + protected void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) + { + Logger.Error(e.Exception, "Unhandled exception"); + + e.Handled = true; + } + private void ProcessArgs(string[] args) { foreach (var arg in args) @@ -48,8 +42,8 @@ private void ProcessArgs(string[] args) case var val when val.StartsWith("-loglevel=", true, CultureInfo.InvariantCulture): (string key, string value) = SplitArg(arg); - LogLevel level = GetLogLevel(value); - AdjustLogLevel(level); + LogLevel level = LoggerConfguration.GetLogLevel(value); + LoggerConfguration.AdjustLogLevel(level); break; } @@ -68,38 +62,5 @@ private void ProcessArgs(string[] args) return (key, value); } - - private LogLevel GetLogLevel(string value) - { - LogLevel level; - - switch (value.ToLower()) - { - case "debug": - level = LogLevel.Debug; - - break; - case "trace": - level = LogLevel.Trace; - - break; - default: - level = LogLevel.Warn; - - break; - } - - return level; - } - - private void AdjustLogLevel(LogLevel logLevel) - { - var target = LogManager.Configuration.FindTargetByName("logfile"); - - if (target != null) - { - LogManager.Configuration.AddRule(logLevel, LogLevel.Fatal, target); - } - } } } \ No newline at end of file From a6e4e9e2d37a83a92317df0e00edc11c75c9f0bc Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:06:26 -0400 Subject: [PATCH 20/50] Add a message box in case of last chance exception handling --- src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs index 5eb56382..9bea567a 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs @@ -28,7 +28,11 @@ protected override void OnStartup(StartupEventArgs e) protected void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { - Logger.Error(e.Exception, "Unhandled exception"); + Logger.Error(e.Exception, "Unhandled exception", sender); + MessageBox.Show("Something went horribly wrong...\nBut I landed on my feet like a cat !\n\nCheck logs to get more details.", + "Almost crashed...", + MessageBoxButton.OK, + MessageBoxImage.Error); e.Handled = true; } From 1cf40f22f331bee8be7310f96310c75ecd9b6c6f Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:06:48 -0400 Subject: [PATCH 21/50] Add logs to KeyDefinitionDictionary --- .../Model/Dictionary/KeyDefinitionDictionary.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs index 5f3f7c6a..29f74b9c 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs @@ -9,7 +9,7 @@ namespace InvvardDev.EZLayoutDisplay.Desktop.Model.Dictionary { public class KeyDefinitionDictionary { - private static readonly Logger _logger = LogManager.GetCurrentClassLogger(); + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); public List KeyDefinitions { get; private set; } @@ -20,24 +20,28 @@ public KeyDefinitionDictionary() private void InitializeKeyDefinitions() { + Logger.Trace($"Call {nameof(InitializeKeyDefinitions)} method"); KeyDefinitions = new List(); if (Resources.keyDefinitions.Length <= 0) { - _logger.Warn("KeyDefinitioins are missing from Resources"); + Logger.Warn("KeyDefinitioins are missing from Resources"); return; } try { var json = Encoding.Default.GetString(Resources.keyDefinitions); + Logger.Debug($"Resource content = {json}"); + var keyDefinitions = JsonConvert.DeserializeObject>(json); + Logger.Debug("Key definitions {@value1}", keyDefinitions); KeyDefinitions.AddRange(keyDefinitions); } catch (Exception ex) { - _logger.Fatal(ex); + Logger.Error(ex); } } } From 0cb65f8b9ab40eca63afa540821d8b48a454c038 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:18:00 -0400 Subject: [PATCH 22/50] Add trace into AboutViewModel --- .../ViewModel/AboutViewModel.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs index 7ba8992a..17c80505 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using System; +using System.Diagnostics; using System.Linq; using System.Reflection; using System.Windows.Input; @@ -6,6 +7,7 @@ using GalaSoft.MvvmLight.CommandWpf; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.ViewModel { @@ -13,7 +15,9 @@ public class AboutViewModel : ViewModelBase { #region Fields - private IWindowService _windowService; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly IWindowService _windowService; private string _windowTitle; private string _appTitleLabel; @@ -159,6 +163,8 @@ private void CloseAboutWindow() public AboutViewModel(IWindowService windowService) { + Logger.Trace("Instanciate {0}", GetType()); + _windowService = windowService; _basedOnUrl = "https://configure.ergodox-ez.com/layouts/default/latest/0"; From acdab02505e13725ea711b82345319da99b781b7 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:21:47 -0400 Subject: [PATCH 23/50] Add tracing into DisplayLayoutViewModel --- .../ViewModel/DisplayLayoutViewModel.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index a59705b9..9d91a650 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -15,13 +15,16 @@ using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; using Newtonsoft.Json; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.ViewModel { public class DisplayLayoutViewModel : ViewModelBase - { + { #region Fields + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly IWindowService _windowService; private readonly ILayoutService _layoutService; private readonly ISettingsService _settingsService; @@ -99,6 +102,8 @@ public int CurrentLayerIndex public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layoutService, ISettingsService settingsService) { + Logger.Trace("{0}", GetType()); + _windowService = windowService; _layoutService = layoutService; _settingsService = settingsService; @@ -109,6 +114,8 @@ public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layou SetLabelUi(); LoadCompleteLayout(); + + Logger.Trace("About Window created"); } #region Private methods From 0cfe35b94c576a984045b033c843e5c5290b737c Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:22:08 -0400 Subject: [PATCH 24/50] Add tracing into MainViewModel --- .../ViewModel/MainViewModel.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs index 058ca6c0..56efa5ed 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs @@ -3,6 +3,7 @@ using GalaSoft.MvvmLight.CommandWpf; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.ViewModel { @@ -16,6 +17,8 @@ public class MainViewModel : ViewModelBase { #region Fields + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private ICommand _showLayoutCommand; private ICommand _showSettingsCommand; private ICommand _showAboutCommand; @@ -97,6 +100,8 @@ public string TrayMenuExitCommandLabel /// public MainViewModel(IWindowService windowService, IApplicationService applicationService) { + Logger.Trace("{0}", GetType()); + _windowService = windowService; _applicationService = applicationService; From bff8dbc271198a485b0ab1f2af6e289c43d53de3 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:44:19 -0400 Subject: [PATCH 25/50] Update tracing --- .../ViewModel/DisplayLayoutViewModel.cs | 2 +- .../ViewModel/MainViewModel.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index 9d91a650..a216ff8f 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -102,7 +102,7 @@ public int CurrentLayerIndex public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layoutService, ISettingsService settingsService) { - Logger.Trace("{0}", GetType()); + Logger.Trace("Instanciate {0}", GetType()); _windowService = windowService; _layoutService = layoutService; diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs index 56efa5ed..3be58226 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs @@ -100,7 +100,7 @@ public string TrayMenuExitCommandLabel /// public MainViewModel(IWindowService windowService, IApplicationService applicationService) { - Logger.Trace("{0}", GetType()); + Logger.Trace("Instanciate {0}", GetType()); _windowService = windowService; _applicationService = applicationService; From 4e1339ab53c985698f8f4b27a9c52e6ca726eef7 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:44:39 -0400 Subject: [PATCH 26/50] Add tracing to SettingsViewModel --- .../ViewModel/SettingsViewModel.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs index f9338d35..ccb9336a 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs @@ -9,6 +9,7 @@ using InvvardDev.EZLayoutDisplay.Desktop.Model.Messenger; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.ViewModel { @@ -16,6 +17,8 @@ public class SettingsViewModel : ViewModelBase { #region Fields + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly ISettingsService _settingsService; private readonly IWindowService _windowService; private readonly ILayoutService _layoutService; @@ -163,6 +166,8 @@ public Hotkey HotkeyShowLayout public SettingsViewModel(ISettingsService settingsService, IWindowService windowService, ILayoutService layoutService) { + Logger.Trace("Instanciate {0}", GetType()); + _settingsService = settingsService; _windowService = windowService; _layoutService = layoutService; From ecc31a2ec8936b405ca61674548f86c7233d5326 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:45:08 -0400 Subject: [PATCH 27/50] Add NLog shutdown --- .../ViewModel/ViewModelLocator.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/ViewModelLocator.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/ViewModelLocator.cs index 9989e67d..918efd8e 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/ViewModelLocator.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/ViewModelLocator.cs @@ -3,6 +3,7 @@ using GalaSoft.MvvmLight.Ioc; using InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; +using NLog; using ApplicationService = InvvardDev.EZLayoutDisplay.Desktop.Service.Design.ApplicationService; using KeyboardHookService = InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation.KeyboardHookService; using LayoutService = InvvardDev.EZLayoutDisplay.Desktop.Service.Design.LayoutService; @@ -68,6 +69,7 @@ static ViewModelLocator() public static void Cleanup() { SimpleIoc.Default.GetInstance()?.Dispose(); + LogManager.Shutdown(); } } } \ No newline at end of file From f53dfc8c23b34228db0f59eb74f1a6182d9fa4c3 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 21:49:05 -0400 Subject: [PATCH 28/50] Add tracing --- .../ViewModel/AboutViewModel.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs index 17c80505..d09f4f74 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs @@ -197,6 +197,8 @@ private void SetLabelUi() private static string GetAppTitle() { + Logger.Trace("Call {0} method", nameof(GetAppTitle)); + var appTitle = "EZ Layout Display"; var customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false).FirstOrDefault(); @@ -211,16 +213,19 @@ private static string GetAppTitle() private void NavigateBasedOnUrl() { + Logger.Trace("Call {0} relay command", nameof(NavigateBasedOnUrl)); Process.Start(_basedOnUrl); } private void NavigateProjectHomeUrl() { + Logger.Trace("Call {0} relay command", nameof(NavigateProjectHomeUrl)); Process.Start(_projectHomeUrl); } private void NavigateContactUrl() { + Logger.Trace("Call {0} relay command", nameof(NavigateContactUrl)); Process.Start(_contactUrl); } From 17b0d137bf13660216b3812148259404cd7b9adf Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 22:23:58 -0400 Subject: [PATCH 29/50] Rename LoggerHelper --- .../{LoggerConfguration.cs => LoggerHelper.cs} | 15 +++++++++++++-- .../InvvardDev.EZLayoutDisplay.Desktop.csproj | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) rename src/InvvardDev.EZLayoutDisplay.Desktop/Helper/{LoggerConfguration.cs => LoggerHelper.cs} (57%) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs similarity index 57% rename from src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs rename to src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs index c13daba2..0670a0a5 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerConfguration.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs @@ -1,9 +1,20 @@ -using NLog; +using System.Runtime.CompilerServices; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Helper { - public class LoggerConfguration + public class LoggerHelper { + internal static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + internal static void TraceMethod(string message = "Method {0} called (line {1})", + [ CallerMemberName ] string memberName = "", + [ CallerFilePath ] string sourceFilePath = "", + [ CallerLineNumber ] int sourceLineNumber = 0) + { + Logger.Trace(message, memberName, sourceLineNumber); + } + internal static LogLevel GetLogLevel(string value) { LogLevel level; diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj index f9aa331b..e97b739f 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/InvvardDev.EZLayoutDisplay.Desktop.csproj @@ -110,7 +110,7 @@ Designer - + From f2b1a8bdd9276638716fe9ecdd5121932db07ccf Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 22:24:13 -0400 Subject: [PATCH 30/50] Rename LoggerHelper --- src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs index 9bea567a..2a152cb0 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/App.xaml.cs @@ -46,8 +46,8 @@ private void ProcessArgs(string[] args) case var val when val.StartsWith("-loglevel=", true, CultureInfo.InvariantCulture): (string key, string value) = SplitArg(arg); - LogLevel level = LoggerConfguration.GetLogLevel(value); - LoggerConfguration.AdjustLogLevel(level); + LogLevel level = LoggerHelper.GetLogLevel(value); + LoggerHelper.AdjustLogLevel(level); break; } From b9c496ba080d09dd735bf81090371bf4e02fa050 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 18 Mar 2019 22:26:59 -0400 Subject: [PATCH 31/50] Add tracing to DisplayLayoutViewModel --- .../ViewModel/DisplayLayoutViewModel.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index a216ff8f..8f11b5e2 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -8,6 +8,7 @@ using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; using GalaSoft.MvvmLight.Messaging; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; using InvvardDev.EZLayoutDisplay.Desktop.Model.Messenger; @@ -102,7 +103,7 @@ public int CurrentLayerIndex public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layoutService, ISettingsService settingsService) { - Logger.Trace("Instanciate {0}", GetType()); + LoggerHelper.TraceMethod("Instanciate {0}"); _windowService = windowService; _layoutService = layoutService; @@ -114,8 +115,6 @@ public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layou SetLabelUi(); LoadCompleteLayout(); - - Logger.Trace("About Window created"); } #region Private methods @@ -127,6 +126,7 @@ private void SetLabelUi() private async void LoadCompleteLayout() { + LoggerHelper.TraceMethod(); CurrentLayerIndex = 0; if (IsInDesignModeStatic) @@ -213,6 +213,8 @@ private async Task PopulateLayoutTemplates() private void SwitchLayer() { + LoggerHelper.TraceMethod(); + Logger.Info("Switch to Layer {0} on {1}", CurrentLayerIndex, _layoutTemplates.Count - 1); if (_layoutTemplates.Any()) { CurrentLayoutTemplate = new ObservableCollection(_layoutTemplates[CurrentLayerIndex]); @@ -224,11 +226,13 @@ private void SwitchLayer() private void LoadCompleteLayout(UpdatedLayoutMessage obj) { + LoggerHelper.TraceMethod("Intercept {0} message"); LoadCompleteLayout(); } private void LostFocus() { + LoggerHelper.TraceMethod("Call {0} relay command"); _windowService.CloseWindow(); } @@ -241,6 +245,7 @@ private bool NextLayerCanExecute() private void NextLayer() { + LoggerHelper.TraceMethod("Call {0} relay command"); var maxLayerIndex = _ezLayout.EZLayers.Count - 1; switch (CurrentLayerIndex) From e51e38e59e5abd6ffae29a9ad403b9d6300e47bc Mon Sep 17 00:00:00 2001 From: Pierre C Date: Tue, 19 Mar 2019 21:01:33 -0400 Subject: [PATCH 32/50] Change TraceMethod to extension --- .../Helper/LoggerHelper.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs index 0670a0a5..9ef7fce8 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs @@ -3,16 +3,15 @@ namespace InvvardDev.EZLayoutDisplay.Desktop.Helper { - public class LoggerHelper + public static class LoggerHelper { - internal static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - - internal static void TraceMethod(string message = "Method {0} called (line {1})", + internal static void TraceMethod(this Logger logger, + string message = "Method {0} called (line {1})", [ CallerMemberName ] string memberName = "", [ CallerFilePath ] string sourceFilePath = "", [ CallerLineNumber ] int sourceLineNumber = 0) { - Logger.Trace(message, memberName, sourceLineNumber); + logger.Trace(message, memberName, sourceLineNumber); } internal static LogLevel GetLogLevel(string value) From 39931527a0b936b4189c37883aef06d5fa429fbc Mon Sep 17 00:00:00 2001 From: Pierre C Date: Tue, 19 Mar 2019 21:03:02 -0400 Subject: [PATCH 33/50] Call the extension method --- .../ViewModel/DisplayLayoutViewModel.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index 8f11b5e2..3c0262c6 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -103,7 +103,7 @@ public int CurrentLayerIndex public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layoutService, ISettingsService settingsService) { - LoggerHelper.TraceMethod("Instanciate {0}"); + Logger.TraceMethod("Instanciate {0}"); _windowService = windowService; _layoutService = layoutService; @@ -126,7 +126,7 @@ private void SetLabelUi() private async void LoadCompleteLayout() { - LoggerHelper.TraceMethod(); + Logger.TraceMethod(); CurrentLayerIndex = 0; if (IsInDesignModeStatic) @@ -213,7 +213,7 @@ private async Task PopulateLayoutTemplates() private void SwitchLayer() { - LoggerHelper.TraceMethod(); + Logger.TraceMethod(); Logger.Info("Switch to Layer {0} on {1}", CurrentLayerIndex, _layoutTemplates.Count - 1); if (_layoutTemplates.Any()) { @@ -226,13 +226,13 @@ private void SwitchLayer() private void LoadCompleteLayout(UpdatedLayoutMessage obj) { - LoggerHelper.TraceMethod("Intercept {0} message"); + Logger.TraceMethod("Intercept {0} message"); LoadCompleteLayout(); } private void LostFocus() { - LoggerHelper.TraceMethod("Call {0} relay command"); + Logger.TraceMethod("Call {0} relay command"); _windowService.CloseWindow(); } @@ -245,7 +245,7 @@ private bool NextLayerCanExecute() private void NextLayer() { - LoggerHelper.TraceMethod("Call {0} relay command"); + Logger.TraceMethod("Call {0} relay command"); var maxLayerIndex = _ezLayout.EZLayers.Count - 1; switch (CurrentLayerIndex) From c62a80b57e64a08d74c407b666fc5aea690d4550 Mon Sep 17 00:00:00 2001 From: Pierre C Date: Tue, 19 Mar 2019 21:09:47 -0400 Subject: [PATCH 34/50] Add constructor tracer extension --- .../Helper/LoggerHelper.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs index 9ef7fce8..6bce5992 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs @@ -14,6 +14,15 @@ internal static void TraceMethod(this Logger logger, logger.Trace(message, memberName, sourceLineNumber); } + internal static void TraceConstructor(this Logger logger, + string message = "Instanciate {0} (line {1})", + [ CallerMemberName ] string memberName = "", + [ CallerFilePath ] string sourceFilePath = "", + [ CallerLineNumber ] int sourceLineNumber = 0) + { + logger.Trace(message, memberName, sourceLineNumber); + } + internal static LogLevel GetLogLevel(string value) { LogLevel level; From 8249b08b86601836afd9accbe6ea32b04900ba36 Mon Sep 17 00:00:00 2001 From: Pierre C Date: Tue, 19 Mar 2019 21:13:09 -0400 Subject: [PATCH 35/50] Add the RelayCommand tracer extension --- .../Helper/LoggerHelper.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs index 6bce5992..be496231 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs @@ -6,7 +6,7 @@ namespace InvvardDev.EZLayoutDisplay.Desktop.Helper public static class LoggerHelper { internal static void TraceMethod(this Logger logger, - string message = "Method {0} called (line {1})", + string message = "[Method] {0} (line {1})", [ CallerMemberName ] string memberName = "", [ CallerFilePath ] string sourceFilePath = "", [ CallerLineNumber ] int sourceLineNumber = 0) @@ -14,8 +14,17 @@ internal static void TraceMethod(this Logger logger, logger.Trace(message, memberName, sourceLineNumber); } + internal static void TraceRelayCommand(this Logger logger, + string message = "[Relay Command] {0} (line {1})", + [ CallerMemberName ] string memberName = "", + [ CallerFilePath ] string sourceFilePath = "", + [ CallerLineNumber ] int sourceLineNumber = 0) + { + logger.Trace(message, memberName, sourceLineNumber); + } + internal static void TraceConstructor(this Logger logger, - string message = "Instanciate {0} (line {1})", + string message = "[Constructor] {0} (line {1})", [ CallerMemberName ] string memberName = "", [ CallerFilePath ] string sourceFilePath = "", [ CallerLineNumber ] int sourceLineNumber = 0) From ea5d5ca6f1c426b57a9e3f381af3f8fe46348068 Mon Sep 17 00:00:00 2001 From: Pierre C Date: Tue, 19 Mar 2019 21:32:20 -0400 Subject: [PATCH 36/50] Add tracing --- .../ViewModel/DisplayLayoutViewModel.cs | 20 +++++++++---------- .../ViewModel/MainViewModel.cs | 14 ++++++------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index 3c0262c6..b3294656 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -103,7 +103,7 @@ public int CurrentLayerIndex public DisplayLayoutViewModel(IWindowService windowService, ILayoutService layoutService, ISettingsService settingsService) { - Logger.TraceMethod("Instanciate {0}"); + Logger.TraceConstructor(); _windowService = windowService; _layoutService = layoutService; @@ -232,20 +232,13 @@ private void LoadCompleteLayout(UpdatedLayoutMessage obj) private void LostFocus() { - Logger.TraceMethod("Call {0} relay command"); + Logger.TraceRelayCommand(); _windowService.CloseWindow(); } - private bool NextLayerCanExecute() - { - var canExecute = _layoutTemplates.Any(); - - return canExecute; - } - private void NextLayer() { - Logger.TraceMethod("Call {0} relay command"); + Logger.TraceRelayCommand(); var maxLayerIndex = _ezLayout.EZLayers.Count - 1; switch (CurrentLayerIndex) @@ -264,6 +257,13 @@ private void NextLayer() SwitchLayer(); } + private bool NextLayerCanExecute() + { + var canExecute = _layoutTemplates.Any(); + + return canExecute; + } + #endregion #endregion diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs index 3be58226..d9d756a5 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/MainViewModel.cs @@ -1,6 +1,7 @@ using System.Windows.Input; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; using NLog; @@ -100,7 +101,7 @@ public string TrayMenuExitCommandLabel /// public MainViewModel(IWindowService windowService, IApplicationService applicationService) { - Logger.Trace("Instanciate {0}", GetType()); + Logger.TraceConstructor(); _windowService = windowService; _applicationService = applicationService; @@ -123,31 +124,28 @@ private void SetLabelUi() private void ShowLayoutWindow() { + Logger.TraceRelayCommand(); _windowService.ShowWindow(); } private void ShowSettingsWindow() { + Logger.TraceRelayCommand(); _windowService.ShowWindow(); } private void ShowAboutWindow() { + Logger.TraceRelayCommand(); _windowService.ShowWindow(); } private void ShutdownApplication() { + Logger.TraceRelayCommand(); _applicationService.ShutdownApplication(); } #endregion - - ////public override void Cleanup() - ////{ - //// // Clean up if needed - - //// base.Cleanup(); - ////} } } \ No newline at end of file From f99345a9edad1d6e666b08eeb82ae432198b75d1 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 19 Mar 2019 21:47:08 -0400 Subject: [PATCH 37/50] Add AboutViewModel tracing --- .../ViewModel/AboutViewModel.cs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs index d09f4f74..7d38636b 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/AboutViewModel.cs @@ -5,6 +5,7 @@ using System.Windows.Input; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; using NLog; @@ -152,18 +153,13 @@ public string CloseButtonLabel _closeAboutCommand ?? (_closeAboutCommand = new RelayCommand(CloseAboutWindow)); - private void CloseAboutWindow() - { - _windowService.CloseWindow(); - } - #endregion #region Constructor public AboutViewModel(IWindowService windowService) { - Logger.Trace("Instanciate {0}", GetType()); + Logger.TraceConstructor(); _windowService = windowService; @@ -197,7 +193,7 @@ private void SetLabelUi() private static string GetAppTitle() { - Logger.Trace("Call {0} method", nameof(GetAppTitle)); + Logger.TraceMethod(); var appTitle = "EZ Layout Display"; @@ -213,22 +209,28 @@ private static string GetAppTitle() private void NavigateBasedOnUrl() { - Logger.Trace("Call {0} relay command", nameof(NavigateBasedOnUrl)); + Logger.TraceRelayCommand(); Process.Start(_basedOnUrl); } private void NavigateProjectHomeUrl() { - Logger.Trace("Call {0} relay command", nameof(NavigateProjectHomeUrl)); + Logger.TraceRelayCommand(); Process.Start(_projectHomeUrl); } private void NavigateContactUrl() { - Logger.Trace("Call {0} relay command", nameof(NavigateContactUrl)); + Logger.TraceRelayCommand(); Process.Start(_contactUrl); } + private void CloseAboutWindow() + { + Logger.TraceRelayCommand(); + _windowService.CloseWindow(); + } + #endregion } } \ No newline at end of file From cf7ad3cffb47ce6d0793e12bb1235a645991bc1e Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 19 Mar 2019 22:00:35 -0400 Subject: [PATCH 38/50] Add SettingsViewModel tracing --- .../ViewModel/SettingsViewModel.cs | 50 +++++++++++++++---- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs index ccb9336a..d29cf712 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs @@ -5,6 +5,7 @@ using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; using GalaSoft.MvvmLight.Messaging; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Messenger; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; @@ -126,28 +127,31 @@ public string LayoutUrlContent get => _layoutUrlContent; set { - if (Set(ref _layoutUrlContent, value)) { UpdateButtonCanExecute(); } + if (Set(ref _layoutUrlContent, value)) + { + UpdateButtonCanExecute(); + } } } - + public string AltModifierLabel { get => _altModifierLabel; set => Set(ref _altModifierLabel, value); } - + public string CtrlModifierLabel { get => _ctrlModifierLabel; set => Set(ref _ctrlModifierLabel, value); } - + public string ShiftModifierLabel { get => _shiftModifierLabel; set => Set(ref _shiftModifierLabel, value); } - + public string WindowsModifierLabel { get => _windowsModifierLabel; @@ -166,7 +170,7 @@ public Hotkey HotkeyShowLayout public SettingsViewModel(ISettingsService settingsService, IWindowService windowService, ILayoutService layoutService) { - Logger.Trace("Instanciate {0}", GetType()); + Logger.TraceConstructor(); _settingsService = settingsService; _windowService = windowService; @@ -204,6 +208,8 @@ private void SetSettingControls() private async void SaveSettings() { + Logger.TraceMethod(); + await UpdateLayout(); _settingsService.ErgodoxLayoutUrl = LayoutUrlContent; @@ -218,6 +224,8 @@ private async void SaveSettings() private void CancelSettings() { + Logger.TraceRelayCommand(); + _settingsService.Cancel(); LayoutUrlContent = _settingsService.ErgodoxLayoutUrl; @@ -226,21 +234,28 @@ private void CancelSettings() private void CloseSettingsWindow() { + Logger.TraceRelayCommand(); + if (IsDirty()) { SaveSettings(); } + _windowService.CloseWindow(); } private void UpdateButtonCanExecute() { - ((RelayCommand)ApplySettingsCommand).RaiseCanExecuteChanged(); - ((RelayCommand)CancelSettingsCommand).RaiseCanExecuteChanged(); + Logger.TraceMethod(); + + ((RelayCommand) ApplySettingsCommand).RaiseCanExecuteChanged(); + ((RelayCommand) CancelSettingsCommand).RaiseCanExecuteChanged(); } private bool IsDirty() { + Logger.TraceMethod(); + var isDirty = _settingsService.ErgodoxLayoutUrl != _layoutUrlContent; return isDirty; @@ -248,6 +263,8 @@ private bool IsDirty() private async Task UpdateLayout() { + Logger.TraceMethod(); + var layoutHashId = ExtractLayoutHashId(LayoutUrlContent); try @@ -256,12 +273,20 @@ private async Task UpdateLayout() var ezLayout = _layoutService.PrepareEZLayout(ergodoxLayout); _settingsService.EZLayout = ezLayout; } - catch (ArgumentNullException) { throw; } - catch (ArgumentException aex) { _windowService.ShowWarning(aex.Message); } + catch (ArgumentNullException) + { + throw; + } + catch (ArgumentException aex) + { + _windowService.ShowWarning(aex.Message); + } } private string ExtractLayoutHashId(string layoutUrl) { + Logger.TraceMethod(); + var layoutHashIdGroupName = "layoutHashId"; var pattern = $"https://configure.ergodox-ez.com/layouts/(?<{layoutHashIdGroupName}>default|[a-zA-Z0-9]{{4}})(?:/latest/[0-9])?"; var layoutHashId = "default"; @@ -269,7 +294,10 @@ private string ExtractLayoutHashId(string layoutUrl) var regex = new Regex(pattern); var match = regex.Match(layoutUrl); - if (match.Success) { layoutHashId = match.Groups[layoutHashIdGroupName].Value; } + if (match.Success) + { + layoutHashId = match.Groups[layoutHashIdGroupName].Value; + } return layoutHashId; } From 8a9c1befed7a10bb596b2d07381df0c920d3a814 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 19 Mar 2019 22:41:39 -0400 Subject: [PATCH 39/50] Add debug logs --- .../Model/Dictionary/KeyDefinitionDictionary.cs | 4 +++- .../ViewModel/SettingsViewModel.cs | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs index 29f74b9c..f2d69140 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Model/Dictionary/KeyDefinitionDictionary.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Properties; using Newtonsoft.Json; using NLog; @@ -15,12 +16,13 @@ public class KeyDefinitionDictionary public KeyDefinitionDictionary() { + Logger.TraceConstructor(); InitializeKeyDefinitions(); } private void InitializeKeyDefinitions() { - Logger.Trace($"Call {nameof(InitializeKeyDefinitions)} method"); + Logger.TraceMethod(); KeyDefinitions = new List(); if (Resources.keyDefinitions.Length <= 0) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs index d29cf712..84494ab5 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs @@ -254,8 +254,6 @@ private void UpdateButtonCanExecute() private bool IsDirty() { - Logger.TraceMethod(); - var isDirty = _settingsService.ErgodoxLayoutUrl != _layoutUrlContent; return isDirty; @@ -267,18 +265,27 @@ private async Task UpdateLayout() var layoutHashId = ExtractLayoutHashId(LayoutUrlContent); + Logger.Debug("Layout Hash ID = {0}", layoutHashId); + try { var ergodoxLayout = await _layoutService.GetErgodoxLayout(layoutHashId); + Logger.Debug("ergodoxLayout = {@value0}", ergodoxLayout); + var ezLayout = _layoutService.PrepareEZLayout(ergodoxLayout); + Logger.Debug("ezLayout = {@value0}", ezLayout); + _settingsService.EZLayout = ezLayout; } - catch (ArgumentNullException) + catch (ArgumentNullException anex) { + Logger.Error(anex); + throw; } catch (ArgumentException aex) { + Logger.Error(aex); _windowService.ShowWarning(aex.Message); } } From cbf0fb161a3cea88f38bed09c060f36cac791785 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Tue, 19 Mar 2019 22:46:35 -0400 Subject: [PATCH 40/50] Add debug tracing --- .../ViewModel/DisplayLayoutViewModel.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs index b3294656..25f798ac 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/DisplayLayoutViewModel.cs @@ -21,7 +21,7 @@ namespace InvvardDev.EZLayoutDisplay.Desktop.ViewModel { public class DisplayLayoutViewModel : ViewModelBase - { + { #region Fields private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); @@ -137,6 +137,7 @@ private async void LoadCompleteLayout() } _ezLayout = _settingsService.EZLayout; + Logger.Debug("EZLayout = {@value0}", _ezLayout); _layoutTemplates = new List>(); @@ -144,7 +145,9 @@ private async void LoadCompleteLayout() || !_ezLayout.EZLayers.Any() || !_ezLayout.EZLayers.SelectMany(l => l.EZKeys).Any()) { + Logger.Info("No layout available"); NoLayoutAvailable = true; + return; } @@ -156,6 +159,8 @@ private async void LoadCompleteLayout() private void LoadDesignTimeModel() { + Logger.TraceMethod(); + NoLayoutAvailable = false; var json = Encoding.Default.GetString(Resources.layoutDefinition); @@ -183,21 +188,16 @@ private void LoadDesignTimeModel() CurrentLayoutTemplate[i].EZKey = new EZKey { Label = new KeyLabel("E"), Modifier = new KeyLabel("Left Shift"), - KeyCategory = KeyCategory.French, - InternationalHint = "fr" - }; + KeyCategory = KeyCategory.French, + InternationalHint = "fr" + }; } } - private async Task> LoadLayoutDefinition() - { - var layoutDefinition = await _layoutService.GetLayoutTemplate(); - - return layoutDefinition; - } - private async Task PopulateLayoutTemplates() { + Logger.TraceMethod(); + foreach (var t in _ezLayout.EZLayers) { if (!(await LoadLayoutDefinition() is List layoutTemplate)) break; @@ -211,17 +211,25 @@ private async Task PopulateLayoutTemplates() } } + private async Task> LoadLayoutDefinition() + { + Logger.TraceMethod(); + var layoutDefinition = await _layoutService.GetLayoutTemplate(); + + return layoutDefinition; + } + private void SwitchLayer() { Logger.TraceMethod(); Logger.Info("Switch to Layer {0} on {1}", CurrentLayerIndex, _layoutTemplates.Count - 1); + if (_layoutTemplates.Any()) { CurrentLayoutTemplate = new ObservableCollection(_layoutTemplates[CurrentLayerIndex]); } } - #region Delegates private void LoadCompleteLayout(UpdatedLayoutMessage obj) From 3d3ede80733960f71190af4ce07e8cec86c0d228 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Thu, 21 Mar 2019 21:21:47 -0400 Subject: [PATCH 41/50] Add debugging logs --- .../ViewModel/SettingsViewModel.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs index 84494ab5..d1282c23 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/ViewModel/SettingsViewModel.cs @@ -305,6 +305,9 @@ private string ExtractLayoutHashId(string layoutUrl) { layoutHashId = match.Groups[layoutHashIdGroupName].Value; } + + Logger.Debug("Layout URL = {0}", layoutUrl); + Logger.Debug("Layout Hash ID = {0}", layoutHashId); return layoutHashId; } From 83292f0e5ea46c5dbb96b784206444f69735ecc9 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Thu, 21 Mar 2019 22:40:03 -0400 Subject: [PATCH 42/50] Add DebugParam extensions --- .../Helper/LoggerHelper.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs index be496231..e2ad4c90 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/LoggerHelper.cs @@ -32,6 +32,33 @@ internal static void TraceConstructor(this Logger logger, logger.Trace(message, memberName, sourceLineNumber); } + internal static void DebugInputParam(this Logger logger, + string parameterName, + object parameter, + string message = "[Input {method}] {parameterName} = {@parameterValue})", + [ CallerMemberName ] string memberName = "") + { + DebugParam(logger, parameterName, parameter, message, memberName); + } + + internal static void DebugOutputParam(this Logger logger, + string parameterName, + object parameter, + string message = "[Output {method}] {parameterName} = {@parameterValue})", + [ CallerMemberName ] string memberName = "") + { + DebugParam(logger, parameterName, parameter, message, memberName); + } + + private static void DebugParam(Logger logger, + string parameterName, + object parameter, + string message, + string memberName) + { + logger.Debug(message, memberName, parameterName, parameter); + } + internal static LogLevel GetLogLevel(string value) { LogLevel level; From 59c8c0f47f0e806d61c12067c534f8885641caa0 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Thu, 21 Mar 2019 22:42:42 -0400 Subject: [PATCH 43/50] Add debugging logs --- .../Helper/EZLayoutMaker.cs | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs index 26bb4c7b..e765af2a 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs @@ -3,11 +3,14 @@ using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Dictionary; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Helper { public class EZLayoutMaker { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private const string NoCommand = "KC_NO"; private const string TransparentKey = "KC_TRANSPARENT"; private const string KeyCodeOsm = "OSM"; @@ -15,11 +18,15 @@ public class EZLayoutMaker public EZLayoutMaker() { + Logger.TraceConstructor(); _keyDefinitionDictionary = new KeyDefinitionDictionary(); } public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(ergodoxLayout), ergodoxLayout); + var ezLayout = new EZLayout { HashId = ergodoxLayout.HashId, Name = ergodoxLayout.Title @@ -31,29 +38,39 @@ public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout) ezLayout.EZLayers.Add(ezLayer); } + Logger.DebugOutputParam(nameof(ezLayout), ezLayout); + return ezLayout; } private EZLayer PrepareEZLayer(ErgodoxLayer ergodoxLayer) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(ergodoxLayer), ergodoxLayer); + var layer = new EZLayer { Index = ergodoxLayer.Position, Name = ergodoxLayer.Title, Color = ergodoxLayer.Color }; - for (var index = 0 ; index < ergodoxLayer.Keys.Count ; index++) + foreach (var ergodoxKey in ergodoxLayer.Keys) { - EZKey key = PrepareKeyLabels(ergodoxLayer.Keys[index], index); + EZKey key = PrepareKeyLabels(ergodoxKey); layer.EZKeys.Add(key); } + Logger.DebugOutputParam(nameof(layer), layer); + return layer; } - private EZKey PrepareKeyLabels(ErgodoxKey ergodoxKey, int keyIndex) + private EZKey PrepareKeyLabels(ErgodoxKey ergodoxKey) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(ergodoxKey), ergodoxKey); + KeyDefinition keyDefinition = GetKeyDefinition(ergodoxKey.Code); /** Every category has a label, so no need to make a special case : @@ -145,6 +162,8 @@ private EZKey PrepareKeyLabels(ErgodoxKey ergodoxKey, int keyIndex) ProcessModifiers(ergodoxKey, key); + Logger.DebugOutputParam(nameof(key), key); + return key; } @@ -234,7 +253,7 @@ private List GetModifiersApplied(ErgodoxModifiers ergodoxModifiers) private string AggregateModifierLabels(List mods) { - var subLabel = ""; + string subLabel; switch (mods.Count) { From 23f0dba29ea8d4d20186a9e9a51c10c6d637d885 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 24 Mar 2019 17:42:43 -0400 Subject: [PATCH 44/50] Add warning on KeyCode unknown --- .../Helper/EZLayoutMaker.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs index e765af2a..42f0fa9f 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Helper/EZLayoutMaker.cs @@ -169,7 +169,13 @@ private EZKey PrepareKeyLabels(ErgodoxKey ergodoxKey) private KeyDefinition GetKeyDefinition(string ergodoxKeyCode) { - var keyDefinition = _keyDefinitionDictionary.KeyDefinitions.FirstOrDefault(k => k.KeyCode == ergodoxKeyCode) ?? GetKeyDefinition(TransparentKey); + var keyDefinition = _keyDefinitionDictionary.KeyDefinitions.FirstOrDefault(k => k.KeyCode == ergodoxKeyCode); + + if (keyDefinition == null) + { + Logger.Warn("Key code '{0}' unknown", ergodoxKeyCode); + keyDefinition = GetKeyDefinition(TransparentKey); + } return keyDefinition; } From c23d679e9693691acae857961554544927d31151 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 24 Mar 2019 21:57:50 -0400 Subject: [PATCH 45/50] Add tracing logs --- .../Service/Implementation/ApplicationService.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/ApplicationService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/ApplicationService.cs index 268ab7fd..2ef96a21 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/ApplicationService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/ApplicationService.cs @@ -1,13 +1,18 @@ using System.Windows; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation { public class ApplicationService : IApplicationService { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + /// public void ShutdownApplication() - { + { + Logger.TraceMethod(); Application.Current.Shutdown(); } } From bc69bb1f958949e6def95e71e1cd49f841d7a4cf Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 24 Mar 2019 22:28:36 -0400 Subject: [PATCH 46/50] Add logs --- .../Implementation/KeyboardHookService.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/KeyboardHookService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/KeyboardHookService.cs index 001276a3..0b8aa1cc 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/KeyboardHookService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/KeyboardHookService.cs @@ -1,9 +1,11 @@ using System; using System.Linq; using System.Windows; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using InvvardDev.EZLayoutDisplay.Desktop.View; +using NLog; using NonInvasiveKeyboardHookLibrary; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation @@ -14,6 +16,7 @@ public class KeyboardHookService : IKeyboardHookService private bool disposed; private static KeyboardHookManager _hook; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly IWindowService _windowService; private readonly ISettingsService _settingsService; @@ -30,6 +33,8 @@ public class KeyboardHookService : IKeyboardHookService public KeyboardHookService(IWindowService windowService, ISettingsService settingsService) { + Logger.TraceConstructor(); + _windowService = windowService; _settingsService = settingsService; @@ -38,8 +43,12 @@ public KeyboardHookService(IWindowService windowService, ISettingsService settin private void InitKeyboardHook() { + Logger.TraceMethod(); + Hook.Start(); + Logger.Debug("Registered hotkey {@value0}", _settingsService.HotkeyShowLayout); + var hotkeyShowLayout = _settingsService.HotkeyShowLayout; switch (hotkeyShowLayout.ModifierKeys.Count) @@ -63,11 +72,18 @@ private void InitKeyboardHook() public void RegisterHotkey(ModifierKeys modifiers, int keyCode) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(modifiers), modifiers); + Logger.DebugInputParam(nameof(keyCode), keyCode); + Hook.RegisterHotkey(modifiers, keyCode, DisplayLayout); } public void RegisterHotkey(int keyCode) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(keyCode), keyCode); + Hook.RegisterHotkey(keyCode, DisplayLayout); } @@ -77,6 +93,9 @@ public void RegisterHotkey(int keyCode) private static ModifierKeys SumModifiers(Hotkey hotkeyShowLayout) { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(hotkeyShowLayout), hotkeyShowLayout); + var sumModifierKeys = hotkeyShowLayout.ModifierKeys[0]; for (int i = 1; i < hotkeyShowLayout.ModifierKeys.Count; i++) @@ -84,11 +103,15 @@ private static ModifierKeys SumModifiers(Hotkey hotkeyShowLayout) sumModifierKeys = sumModifierKeys | hotkeyShowLayout.ModifierKeys[i]; } + Logger.DebugOutputParam(nameof(sumModifierKeys), sumModifierKeys); + return sumModifierKeys; } private void DisplayLayout() { + Logger.TraceMethod(); + Application.Current.Dispatcher.Invoke(delegate { _windowService.ShowWindow(); From 131fc290a94d66c9956dce17da6376e52d04602f Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Sun, 24 Mar 2019 22:30:07 -0400 Subject: [PATCH 47/50] Add Logger property --- .../Service/Implementation/LayoutService.cs | 2 ++ .../Service/Implementation/SettingsService.cs | 2 ++ .../Service/Implementation/WindowService.cs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs index 97246378..87960d30 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs @@ -8,11 +8,13 @@ using InvvardDev.EZLayoutDisplay.Desktop.Properties; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using Newtonsoft.Json; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation { public class LayoutService : ILayoutService { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly string GetLayoutBody = "{{\"operationName\":\"getLayout\",\"variables\":{{\"hashId\":\"{0}\"}},\"query\":\"query getLayout($hashId: String!) {{\\n Layout(hashId: $hashId) {{\\n ...LayoutData\\n }}\\n}}\\n\\nfragment LayoutData on Layout {{\\n hashId\\n title\\n revisions {{\\n hashId\\n model\\n layers {{\\n hashId\\n keys\\n position\\n title\\n color\\n }}\\n}}\\n}}\\n\"}}"; diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs index a098518a..0bb10daf 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs @@ -5,6 +5,7 @@ using InvvardDev.EZLayoutDisplay.Desktop.Properties; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using Newtonsoft.Json; +using NLog; using ModifierKeys = NonInvasiveKeyboardHookLibrary.ModifierKeys; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation @@ -19,6 +20,7 @@ public class SettingsService : ISettingsService #region Fields + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly Settings _settings; #endregion diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs index 7a87bcee..0ec2eda9 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs @@ -1,11 +1,13 @@ using System.Collections.Generic; using System.Windows; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; +using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation { public class WindowService: IWindowService { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly Dictionary _windows; public WindowService() From 1bd9f10bcb0b24fed32f90cd3edeec84506e3298 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 25 Mar 2019 13:02:25 -0400 Subject: [PATCH 48/50] Add logs --- .../Service/Implementation/LayoutService.cs | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs index 87960d30..f0c2ea4b 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/LayoutService.cs @@ -25,19 +25,36 @@ public class LayoutService : ILayoutService /// public async Task GetErgodoxLayout(string layoutHashId) { - if (string.IsNullOrWhiteSpace(layoutHashId)) { throw new ArgumentNullException(nameof(layoutHashId), "Layout hash ID was not found."); } + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(layoutHashId), layoutHashId); + + if (string.IsNullOrWhiteSpace(layoutHashId)) + { + Logger.Error("Layout {0} was not found", layoutHashId); + throw new ArgumentNullException(nameof(layoutHashId), $"Layout hash ID \"{layoutHashId}\" was not found."); + } DataRoot layout; using (HttpClient client = new HttpClient()) { var body = string.Format(GetLayoutBody, layoutHashId); + Logger.Debug("Request body : {@body}", body); + var response = await client.PostAsync(GetLayoutRequestUri, new StringContent(body, Encoding.UTF8, "application/json")); + Logger.Debug("Response : {@response}", response); + var result = await response.Content.ReadAsStringAsync(); + Logger.Debug("Content result : {@result}", result); layout = JsonConvert.DeserializeObject(result); + Logger.Debug("Deserialized layout : {@layout}", layout); - if (layout?.LayoutRoot?.Layout == null) { throw new ArgumentException(layoutHashId, $"Hash ID \"{layoutHashId}\" does not exist"); } + if (layout?.LayoutRoot?.Layout == null) + { + Logger.Error("Layout {0} does not exist", layoutHashId); + throw new ArgumentException(layoutHashId, $"Hash ID \"{layoutHashId}\" does not exist"); + } } return layout.LayoutRoot.Layout; @@ -46,6 +63,8 @@ public async Task GetErgodoxLayout(string layoutHashId) /// public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout) { + Logger.TraceMethod(); + var ezLayoutMaker = new EZLayoutMaker(); EZLayout ezLayout = ezLayoutMaker.PrepareEZLayout(ergodoxLayout); @@ -55,6 +74,8 @@ public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout) /// public async Task> GetLayoutTemplate() { + Logger.TraceMethod(); + IEnumerable layoutTemplate = await ReadLayoutDefinition(); return layoutTemplate; @@ -66,9 +87,11 @@ public async Task> GetLayoutTemplate() private async Task> ReadLayoutDefinition() { + Logger.TraceMethod(); + if (Resources.layoutDefinition.Length <= 0) { - // TODO : add logging + Logger.Warn("Layout definition is empty"); return new List(); } @@ -80,6 +103,8 @@ private async Task> ReadLayoutDefinition() return layoutDefinition; }); + Logger.DebugOutputParam(nameof(layoutTemplate), layoutTemplate); + return layoutTemplate; } From 4d9f6645d6f3a6a78e7c38b2228c4bc3f598927a Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 25 Mar 2019 21:29:11 -0400 Subject: [PATCH 49/50] Add logging to SettingsService --- .../Service/Implementation/SettingsService.cs | 68 ++++++++++++++++--- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs index 0bb10daf..3bfa88bc 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/SettingsService.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Forms; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Model; using InvvardDev.EZLayoutDisplay.Desktop.Model.Enum; using InvvardDev.EZLayoutDisplay.Desktop.Properties; @@ -29,16 +30,14 @@ public class SettingsService : ISettingsService public SettingsService(Settings settings) { + Logger.TraceConstructor(); + _settings = settings; _defaultHotkey = new Hotkey(Keys.Space, ModifierKeys.Alt, ModifierKeys.Control, ModifierKeys.Shift, ModifierKeys.WindowsKey); } #endregion - #region Private methods - - #endregion - #region ISettingService implementation #region Properties @@ -48,22 +47,34 @@ public Hotkey HotkeyShowLayout { get { + Logger.TraceMethod(); Hotkey hotkey; try { var setting = (string) _settings[SettingsName.HotkeyShowLayout]; + Logger.Debug("SettingsName.HotkeyShowLayout value = '{setting}'", setting); hotkey = string.IsNullOrWhiteSpace(setting) ? _defaultHotkey : JsonConvert.DeserializeObject(setting); + Logger.Debug("Loaded hotkey = {@hotkey}", hotkey); + } + catch (Exception ex) + { + Logger.Error(ex, "Exception catched in '{0}' getter :\n", nameof(HotkeyShowLayout)); + hotkey = _defaultHotkey; } - catch (Exception) { hotkey = _defaultHotkey; } + + Logger.DebugOutputParam(nameof(hotkey), hotkey); return hotkey; } set { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(HotkeyShowLayout), value); + var setting = JsonConvert.SerializeObject(value); _settings[SettingsName.HotkeyShowLayout] = setting; } @@ -72,8 +83,22 @@ public Hotkey HotkeyShowLayout /// public string ErgodoxLayoutUrl { - get => (string) _settings[SettingsName.ErgodoxLayoutUrl]; - set => _settings[SettingsName.ErgodoxLayoutUrl] = value; + get + { + Logger.TraceMethod(); + + var url = (string) _settings[SettingsName.ErgodoxLayoutUrl]; + Logger.DebugOutputParam(nameof(ErgodoxLayoutUrl), url); + + return url; + } + set + { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(ErgodoxLayoutUrl), value); + + _settings[SettingsName.ErgodoxLayoutUrl] = value; + } } /// @@ -81,16 +106,35 @@ public EZLayout EZLayout { get { - var setting = (string) _settings[SettingsName.EZLayout]; - var ezLayout = string.IsNullOrWhiteSpace(setting) + Logger.TraceMethod(); + EZLayout ezLayout; + + try + { + var setting = (string) _settings[SettingsName.EZLayout]; + Logger.Debug("SettingsName.EZLayout value = '{setting}'", setting); + + ezLayout = string.IsNullOrWhiteSpace(setting) ? new EZLayout() : JsonConvert.DeserializeObject(setting); + Logger.Debug("Loaded Layout = {@ezLayout}", ezLayout); + } + catch (Exception ex) + { + Logger.Error(ex, "Exception catched in '{0}' getter :\n", nameof(EZLayout)); + ezLayout = new EZLayout(); + } + + Logger.DebugOutputParam(nameof(EZLayout), ezLayout); return ezLayout; } set { + Logger.TraceMethod(); + Logger.DebugInputParam(nameof(EZLayout), value); + var setting = JsonConvert.SerializeObject(value); _settings[SettingsName.EZLayout] = setting; } @@ -101,15 +145,21 @@ public EZLayout EZLayout /// public void Save() { + Logger.TraceMethod(); _settings.Save(); } /// public void Cancel() { + Logger.TraceMethod(); _settings.Reload(); } #endregion + + #region Private methods + + #endregion } } \ No newline at end of file From 061e112a0775278d011f135b2f93cc083dff7943 Mon Sep 17 00:00:00 2001 From: Invvard <7305493+Invvard@users.noreply.github.com> Date: Mon, 25 Mar 2019 21:43:53 -0400 Subject: [PATCH 50/50] Add logging to WindowService --- .../Service/Implementation/WindowService.cs | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs index 0ec2eda9..d471ce90 100644 --- a/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs +++ b/src/InvvardDev.EZLayoutDisplay.Desktop/Service/Implementation/WindowService.cs @@ -1,17 +1,19 @@ using System.Collections.Generic; using System.Windows; +using InvvardDev.EZLayoutDisplay.Desktop.Helper; using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface; using NLog; namespace InvvardDev.EZLayoutDisplay.Desktop.Service.Implementation { - public class WindowService: IWindowService + public class WindowService : IWindowService { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly Dictionary _windows; public WindowService() { + Logger.TraceConstructor(); _windows = new Dictionary(); } @@ -20,9 +22,17 @@ public WindowService() public void ShowWindow() where T : Window, new() { + Logger.TraceMethod(); + Logger.Info("Opening {windowType} window", typeof(T)); + var windowKey = typeof(T).ToString(); + + Logger.Debug("Windows opened list : {@windows}", _windows); + if (!_windows.ContainsKey(windowKey)) { + Logger.Debug("{windowType} window added", typeof(T)); + _windows.Add(windowKey, new T()); _windows[windowKey].Closing += WindowService_Closing; } @@ -33,18 +43,26 @@ public void ShowWindow() public void CloseWindow() { + Logger.TraceMethod(); + Logger.Info("Closing {windowType} window", typeof(T)); + var windowKey = typeof(T).ToString(); if (_windows.ContainsKey(windowKey)) { + Logger.Debug("{windowType} window is going to be closed", typeof(T)); _windows[windowKey].Close(); } } public bool ShowWarning(string warningMessage) { + Logger.TraceMethod(); + var result = MessageBox.Show(warningMessage, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning) == MessageBoxResult.OK; + Logger.DebugOutputParam(nameof(result), result); + return result; } @@ -52,9 +70,18 @@ public bool ShowWarning(string warningMessage) private void WindowService_Closing(object sender, System.ComponentModel.CancelEventArgs e) { + Logger.TraceMethod(); + var windowKey = sender.GetType().ToString(); + Logger.Debug("Window {window} is closing", windowKey); + + if (_windows.ContainsKey(windowKey)) + { + Logger.Debug("Finalizing {windowType} window close", windowKey); - if (_windows.ContainsKey(windowKey)) { _windows.Remove(windowKey); } + _windows[windowKey].Closing -= WindowService_Closing; + _windows.Remove(windowKey); + } } } } \ No newline at end of file