diff --git a/wpf_ax_utility/App.xaml.cs b/wpf_ax_utility/App.xaml.cs index a26d083..f79062c 100644 --- a/wpf_ax_utility/App.xaml.cs +++ b/wpf_ax_utility/App.xaml.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Windows; using System.Security.Principal; +using Serilog; +using Serilog.Sinks.Graylog; namespace wpf_ax_utility { @@ -10,9 +12,17 @@ namespace wpf_ax_utility /// public partial class App : Application { + public static string userName { get { return WindowsIdentity.GetCurrent().Name.Replace("PAL\\", ""); } } public App() { - string userName = WindowsIdentity.GetCurrent().Name.Replace("PAL\\", ""); + Log.Logger = new LoggerConfiguration().WriteTo.Graylog(new GraylogSinkOptions + { + HostnameOrAddress = "palgraylog01.pal.it", + Port = 12202, + MinimumLogEventLevel = Serilog.Events.LogEventLevel.Verbose, + Facility = "(WPF) AX Utility" + }).CreateLogger(); + var userGroups = GetGroups(userName); var uriString = "/wpf_ax_utility;component/UserWindow.xaml"; @@ -36,7 +46,9 @@ namespace wpf_ax_utility { result.Add(group.Translate(typeof(NTAccount)).ToString()); } - catch (Exception ex) { } + catch (Exception ex) { + Utility.WriteLogMessage("Error retrieving groups", LogMessageSeverity.Error, ex); + } } result.Sort(); diff --git a/wpf_ax_utility/MainWindow.xaml.cs b/wpf_ax_utility/MainWindow.xaml.cs index 4990054..c5dd04d 100644 --- a/wpf_ax_utility/MainWindow.xaml.cs +++ b/wpf_ax_utility/MainWindow.xaml.cs @@ -1,4 +1,5 @@ -using System; +using Serilog; +using System; using System.IO; using System.Windows; using System.Windows.Controls; @@ -25,7 +26,7 @@ namespace wpf_ax_utility private void ButtonClicked(object sender, RoutedEventArgs e) { - AucCleaner(); + Utility.AucCleaner(); string AxArgs = string.Empty; @@ -48,42 +49,9 @@ namespace wpf_ax_utility break; ; } - AxExecution(AxArgs); - } + Utility.AxExecution(AxArgs); - public static void AxExecution(string AxArgs) - { - string AxClient = @"C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin\Ax32.exe"; - - if (System.IO.File.Exists(AxClient)) - { - var p = new System.Diagnostics.Process(); - p.StartInfo.FileName = AxClient; - p.StartInfo.Arguments = AxArgs; - p.StartInfo.RedirectStandardOutput = true; - p.StartInfo.UseShellExecute = false; - p.StartInfo.CreateNoWindow = true; - p.Start(); - } - else - { - MessageBox.Show("Microsoft Dynamics Ax 2012 non è installato.", "Informazioni PAL Ax Utility", MessageBoxButton.OK, MessageBoxImage.Error); - } - } - - public static void AucCleaner() - { - string sourceDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - - DirectoryInfo directory = new DirectoryInfo(sourceDir); - FileInfo[] files = directory.GetFiles(); - - string[] aucList = Directory.GetFiles(sourceDir, "*.auc"); - - foreach (string f in aucList) - { - File.Delete(f); - } + Log.Logger.Information("Running AX client with this parameter: " + AxArgs); } } } diff --git a/wpf_ax_utility/UserWindow.xaml.cs b/wpf_ax_utility/UserWindow.xaml.cs index 1f0691d..505ebd5 100644 --- a/wpf_ax_utility/UserWindow.xaml.cs +++ b/wpf_ax_utility/UserWindow.xaml.cs @@ -1,4 +1,5 @@ -using System; +using Serilog; +using System; using System.IO; using System.Windows; using System.Windows.Controls; @@ -25,7 +26,7 @@ namespace wpf_ax_utility private void ButtonClicked(object sender, RoutedEventArgs e) { - AucCleaner(); + Utility.AucCleaner(); string AxArgs = string.Empty; @@ -39,42 +40,11 @@ namespace wpf_ax_utility break; ; } - AxExecution(AxArgs); + Utility.AxExecution(AxArgs); + + Log.Logger.Information("Running AX client with this parameter: " + AxArgs); } - public static void AxExecution(string AxArgs) - { - string AxClient = @"C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin\Ax32.exe"; - - if (System.IO.File.Exists(AxClient)) - { - var p = new System.Diagnostics.Process(); - p.StartInfo.FileName = AxClient; - p.StartInfo.Arguments = AxArgs; - p.StartInfo.RedirectStandardOutput = true; - p.StartInfo.UseShellExecute = false; - p.StartInfo.CreateNoWindow = true; - p.Start(); - } - else - { - MessageBox.Show("Microsoft Dynamics Ax 2012 non è installato.", "Informazioni PAL Ax Utility", MessageBoxButton.OK, MessageBoxImage.Error); - } - } - - public static void AucCleaner() - { - string sourceDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - - DirectoryInfo directory = new DirectoryInfo(sourceDir); - FileInfo[] files = directory.GetFiles(); - - string[] aucList = Directory.GetFiles(sourceDir, "*.auc"); - - foreach (string f in aucList) - { - File.Delete(f); - } - } + } } diff --git a/wpf_ax_utility/Utility.cs b/wpf_ax_utility/Utility.cs new file mode 100644 index 0000000..aabcd8b --- /dev/null +++ b/wpf_ax_utility/Utility.cs @@ -0,0 +1,96 @@ +using Serilog; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace wpf_ax_utility +{ + public enum LogMessageSeverity + { + Informational, + Error + } + public static class Utility + { + public static void AxExecution(string AxArgs) + { + try + { + string AxClient = @"C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin\Ax32.exe"; + + if (System.IO.File.Exists(AxClient)) + { + var p = new System.Diagnostics.Process(); + p.StartInfo.FileName = AxClient; + p.StartInfo.Arguments = AxArgs; + p.StartInfo.RedirectStandardOutput = true; + p.StartInfo.UseShellExecute = false; + p.StartInfo.CreateNoWindow = true; + p.Start(); + } + else + { + MessageBox.Show("Microsoft Dynamics Ax 2012 non è installato.", "Informazioni PAL Ax Utility", MessageBoxButton.OK, MessageBoxImage.Error); + } + } + catch (Exception e) + { + Utility.WriteLogMessage("Error executing AX", LogMessageSeverity.Error, e); + } + + } + + public static void AucCleaner() + { + try + { + string sourceDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + + DirectoryInfo directory = new DirectoryInfo(sourceDir); + if (directory.Exists) + { + FileInfo[] files = directory.GetFiles(); + + string[] aucList = Directory.GetFiles(sourceDir, "*.auc"); + + foreach (string f in aucList) + { + File.Delete(f); + } + } + } + catch (Exception e) + { + Utility.WriteLogMessage("Error cleaning AUCs", LogMessageSeverity.Error, e); + } + } + + public static void WriteLogMessage(string message, LogMessageSeverity Severity = LogMessageSeverity.Informational, Exception exc = null) + { + try + { + var messageTemplate = "{User}: " + message; + switch (Severity) + { + case LogMessageSeverity.Informational: + Log.Logger.Information(messageTemplate, App.userName); + break; + case LogMessageSeverity.Error: + if (exc != null) + Log.Logger.Error(exc, messageTemplate, App.userName); + else + Log.Logger.Error(messageTemplate, App.userName); + break; + } + } + catch + { + + } + } + } +} diff --git a/wpf_ax_utility/wpf_ax_utility.csproj b/wpf_ax_utility/wpf_ax_utility.csproj index 224d930..7443582 100644 --- a/wpf_ax_utility/wpf_ax_utility.csproj +++ b/wpf_ax_utility/wpf_ax_utility.csproj @@ -13,6 +13,11 @@ + + + + + Always