aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs102
1 files changed, 22 insertions, 80 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
index e478dba77..0bd9f9d1d 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
@@ -5,20 +5,15 @@ using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
-using System.Net;
-using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using Tango.BL;
using Tango.Core;
using Tango.Core.DI;
using Tango.Core.Helpers;
-using Tango.Insights;
-using Tango.Integration.Operation;
using Tango.Logging;
using Tango.PPC.Common;
using Tango.PPC.Common.EventLogging;
-using Tango.PPC.Common.Helpers;
using Tango.PPC.Common.Notifications;
using Tango.PPC.Common.WatchDog;
using Tango.Settings;
@@ -30,7 +25,7 @@ namespace Tango.PPC.UI
/// </summary>
public partial class App : Application
{
- public static WpfGlobalExceptionTrapper ExceptionTrapper;
+ private WpfGlobalExceptionTrapper exceptionTrapper;
public static String[] StartupArgs { get; private set; }
private LogManager LogManager = LogManager.Default;
@@ -41,12 +36,6 @@ namespace Tango.PPC.UI
/// <param name="e">A <see cref="T:System.Windows.StartupEventArgs" /> that contains the event data.</param>
protected override void OnStartup(StartupEventArgs e)
{
- //throw new InvalidOperationException("This is a fake exception!!!");
-
- //removed due to possibly causing this issue:
- //https://stackoverflow.com/questions/41543956/how-to-debug-not-enough-storage-is-available-to-process-this-command
- //ThreadPool.SetMaxThreads(1000, 1000);
-
//If no debugger is attached and the argument -debug was passed launch the debugger.
if (e.Args.Contains("-debug") && !Debugger.IsAttached)
{
@@ -56,34 +45,18 @@ namespace Tango.PPC.UI
StartupArgs = e.Args;
//LogManager.RegisterLogger(new ConsoleLogger("Tango PPC Debug"));
- LogManager.RegisterLogger(new FileLogger()
- {
- EnableAutoLogRemoval = true,
- EnableMaxFileSizeLimit = true,
- AutoLogRemovalPeriod = TimeSpan.FromDays(30)
- });
-
-#if DEBUG
+ LogManager.RegisterLogger(new FileLogger());
LogManager.RegisterLogger(new VSOutputLogger());
-#endif
- //Configure machine operator logger.
- var operatorLogger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.SingleOrDefault(x => x is FileLogger) as FileLogger;
- if (operatorLogger != null)
- {
- operatorLogger.EnableAutoLogRemoval = true;
- operatorLogger.EnableMaxFileSizeLimit = true;
- operatorLogger.AutoLogRemovalPeriod = TimeSpan.FromDays(30);
- }
-
- LogsHelper.SetLogSafe(LogManager.CreateLogSafe());
- LogManager.Log($"Application Started... Version: '{AssemblyHelper.GetCurrentAssemblyVersion()}'.");
+ LogManager.Log("Application Started...");
base.OnStartup(e);
- ExceptionTrapper = new WpfGlobalExceptionTrapper();
- ExceptionTrapper.Initialize(this);
- ExceptionTrapper.ApplicationCrashed += ExceptionTrapper_ApplicationCrashed;
+ exceptionTrapper = new WpfGlobalExceptionTrapper();
+ exceptionTrapper.Initialize(this);
+ exceptionTrapper.ApplicationCrashed += ExceptionTrapper_ApplicationCrashed;
+
+ LogManager.Categories.Clear();
CoreSettings.DefaultDataSource = new DataSource()
{
@@ -92,33 +65,25 @@ namespace Tango.PPC.UI
IntegratedSecurity = true,
};
- WebRequest.DefaultWebProxy = null;
+ SettingsManager.Default.GetOrCreate<CoreSettings>();
- GetLastApplicationCrashFromWindows();
- }
+ var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
- #region Global Exception Trapping
-
- private async void GetLastApplicationCrashFromWindows()
- {
- var logItem = await ExceptionTrapper.GetLastApplicationCrashEventLog(60);
- if (logItem != null)
+ if (settings.LoggingCategories.Count == 0)
{
- LogManager.Log(logItem);
-
- try
- {
- InsightsManager.Default.InsertApplicationException(new InsightsApplicationException()
- {
- Time = DateTime.UtcNow,
- Exception = logItem.Message,
- IsApplicationCrash = true
- });
- }
- catch { }
+ settings.LoggingCategories.Add(LogCategory.Critical);
+ settings.LoggingCategories.Add(LogCategory.Error);
+ settings.LoggingCategories.Add(LogCategory.Info);
+ settings.LoggingCategories.Add(LogCategory.Warning);
}
+
+ settings.Save();
+
+ LogManager.Categories.AddRange(settings.LoggingCategories);
}
+ #region Global Exception Trapping
+
/// <summary>
/// Handles the ApplicationCrashed event of the ExceptionTrapper.
/// </summary>
@@ -126,19 +91,7 @@ namespace Tango.PPC.UI
/// <param name="e">The <see cref="ApplicationCrashedEventArgs"/> instance containing the event data.</param>
private void ExceptionTrapper_ApplicationCrashed(object sender, ApplicationCrashedEventArgs e)
{
- List<String> ignoredExceptions = new List<string>()
- {
- "FocusVisualStyle",
- "ThreadAbortException",
- "A Task's exception(s) were not observed"
- };
-
- String exceptionString = e.Exception.ToStringSafe();
-
- if (ignoredExceptions.Exists(x => exceptionString.Contains(x)))
- {
- return;
- }
+ e.TryRecover = true;
try
{
@@ -147,17 +100,6 @@ namespace Tango.PPC.UI
try
{
- InsightsManager.Default.InsertApplicationException(new InsightsApplicationException()
- {
- Time = DateTime.UtcNow,
- Exception = e.Exception.ToString()
- });
- }
- catch
- { }
-
- try
- {
if (Application.Current == null)
{
new Application { ShutdownMode = ShutdownMode.OnExplicitShutdown };