diff --git a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml b/CSharp/Applications/AvaloniaLog4NetDI/App.axaml
deleted file mode 100644
index fdc349d..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs b/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs
deleted file mode 100644
index 2f4deed..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/App.axaml.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-using Avalonia;
-using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Data.Core;
-using Avalonia.Data.Core.Plugins;
-using Avalonia.Markup.Xaml;
-using AvaloniaLog4NetDI.ViewModels;
-using AvaloniaLog4NetDI.Views;
-using Log4Net.Appender.LogView.Core;
-using LogViewer.Avalonia;
-using MessageBox.Avalonia;
-using MessageBox.Avalonia.Enums;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Logging;
-using RandomLogging.Service;
-using System;
-using System.Reflection;
-using System.Threading;
-using Icon = MessageBox.Avalonia.Enums.Icon;
-
-namespace AvaloniaLog4NetDI;
-
-public partial class App : Application
-{
- public override void Initialize()
- => AvaloniaXamlLoader.Load(this);
-
- public override void OnFrameworkInitializationCompleted()
- {
- if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
- {
- // Line below is needed to remove Avalonia data validation.
- // Without this line you will get duplicate validations from both Avalonia and CT
- ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin);
-
- // catch all unhandled errors
- AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
-
- HostApplicationBuilder builder = Host.CreateApplicationBuilder();
-
- builder
- /*
- * Note: For information on launch profiles for debugging,
- * see article: https://www.codeproject.com/Articles/5354478/NET-App-Settings-Demystified-Csharp-VB
- */
-
- // Register the Random Logging Service
- .AddRandomBackgroundService()
-
- // visual debugging tools
- .AddLogViewer()
-
- // Log4Net
- .Logging.AddLog4Net(builder.Configuration);
-
- // uncomment to use custom logging colors (note: System.Drawing namespace)
- //
- //.Logging.AddLog4Net(
- // builder.Configuration,
- // options =>
- //{
- // options.Colors[LogLevel.Trace] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DarkGray
- // };
-
- // options.Colors[LogLevel.Debug] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Gray
- // };
-
- // options.Colors[LogLevel.Information] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DodgerBlue
- // };
-
- // options.Colors[LogLevel.Warning] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Orchid
- // };
- //});
-
- IServiceCollection services = builder.Services;
-
- services
- .AddSingleton()
- .AddSingleton(service => new MainWindow
- {
- DataContext = service.GetRequiredService()
- });
-
- _host = builder.Build();
- _cancellationTokenSource = new();
-
- try
- {
- LogStartingMode();
-
- // set and show
- desktop.MainWindow = _host.Services.GetRequiredService();
- desktop.ShutdownRequested += OnShutdownRequested;
-
- // startup background services
- _ = _host.StartAsync(_cancellationTokenSource.Token);
- }
- catch (OperationCanceledException)
- {
- // skip
- }
- catch (Exception ex)
- {
- ShowMessageBox("Unhandled Error", ex.Message);
- return;
- }
- }
-
- base.OnFrameworkInitializationCompleted();
- }
-
- private void OnShutdownRequested(object? sender, ShutdownRequestedEventArgs e)
- => _ = _host!.StopAsync(_cancellationTokenSource!.Token);
-
- #region Fields
-
- private IHost? _host;
- private CancellationTokenSource? _cancellationTokenSource;
-
- #endregion
-
- private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
- => ShowMessageBox("Unhandled Error", ((Exception)e.ExceptionObject).Message);
-
- private void ShowMessageBox(string title, string message)
- {
- MessageBox.Avalonia.BaseWindows.Base.IMsBoxWindow messageBoxStandardWindow = MessageBoxManager
- .GetMessageBoxStandardWindow(title, message, ButtonEnum.Ok, Icon.Stop);
-
- messageBoxStandardWindow.Show();
- }
-
- private void LogStartingMode()
- {
- // Get the Launch mode
- bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug",
- StringComparison.InvariantCultureIgnoreCase);
-
- // initialize a logger & EventId
- ILogger logger = _host!.Services.GetRequiredService>();
- EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name);
-
- // log a test pattern for each log level
- logger.TestPattern(eventId: eventId);
-
- // log that we have started...
- logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode");
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj b/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj
deleted file mode 100644
index 5e4fb47..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/AvaloniaLog4NetDI.csproj
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- WinExe
- net7.0
- enable
- true
- app.manifest
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PreserveNewest
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Program.cs b/CSharp/Applications/AvaloniaLog4NetDI/Program.cs
deleted file mode 100644
index 9e9f474..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Avalonia;
-using System;
-
-namespace AvaloniaLog4NetDI;
-
-internal class Program
-{
- // Initialization code. Don't use any Avalonia, third-party APIs or any
- // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
- // yet and stuff might break.
- [STAThread]
- public static void Main(string[] args)
- => BuildAvaloniaApp()
- .StartWithClassicDesktopLifetime(args);
-
- // Avalonia configuration, don't remove; also used by visual designer.
- public static AppBuilder BuildAvaloniaApp()
- => AppBuilder.Configure()
- .UsePlatformDetect()
- .LogToTrace();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json
deleted file mode 100644
index ef5f09f..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/Properties/launchSettings.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "profiles": {
- "Development": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Development"
- }
- },
- "Staging": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Staging"
- }
- },
- "Production": {
- "commandName": "Project"
- }
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs
deleted file mode 100644
index 5de3ffe..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/ViewLocator.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using Avalonia.Controls;
-using Avalonia.Controls.Templates;
-using AvaloniaLog4NetDI.ViewModels;
-using System;
-
-namespace AvaloniaLog4NetDI;
-
-public class ViewLocator : IDataTemplate
-{
- public IControl Build(object data)
- {
- string name = data.GetType().FullName!.Replace("ViewModel", "View");
- Type? type = Type.GetType(name);
-
- if (type != null)
- {
- return (Control)Activator.CreateInstance(type)!;
- }
-
- return new TextBlock { Text = "Not Found: " + name };
- }
-
- public bool Match(object data)
- {
- return data is ViewModelBase;
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs
deleted file mode 100644
index eeb2e55..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/MainViewModel.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using LogViewer.Core.ViewModels;
-
-namespace AvaloniaLog4NetDI.ViewModels;
-
-public class MainViewModel : ViewModelBase
-{
- #region Constructor
-
- public MainViewModel(LogViewerControlViewModel logViewer)
- {
- LogViewer = logViewer;
- }
-
- #endregion
-
- #region Properties
-
- public LogViewerControlViewModel LogViewer { get; }
-
- #endregion
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs b/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs
deleted file mode 100644
index e9b5258..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/ViewModels/ViewModelBase.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using CommunityToolkit.Mvvm.ComponentModel;
-
-namespace AvaloniaLog4NetDI.ViewModels;
-
-public class ViewModelBase : ObservableObject
-{
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml
deleted file mode 100644
index b47ca6e..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs
deleted file mode 100644
index cdc7e4b..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/Views/MainWindow.axaml.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Avalonia.Controls;
-
-namespace AvaloniaLog4NetDI.Views;
-
-public partial class MainWindow : Window
-{
- public MainWindow() => InitializeComponent();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/app.manifest b/CSharp/Applications/AvaloniaLog4NetDI/app.manifest
deleted file mode 100644
index e0ce8d0..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/app.manifest
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json
deleted file mode 100644
index 8c1ae04..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Development.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_Dev",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Trace"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Trace"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json
deleted file mode 100644
index 48d4ad8..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.Production.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_Prod",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Warn"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Warn"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json b/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json
deleted file mode 100644
index 3b509e1..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/appsettings.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "System.Net.Http.HttpClient": "Information"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_default",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Info"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Info"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetDI/log4net.config b/CSharp/Applications/AvaloniaLog4NetDI/log4net.config
deleted file mode 100644
index dd79167..0000000
--- a/CSharp/Applications/AvaloniaLog4NetDI/log4net.config
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml b/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml
deleted file mode 100644
index e0a4b17..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs
deleted file mode 100644
index 421a92b..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/App.axaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using Avalonia;
-using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Data.Core;
-using Avalonia.Data.Core.Plugins;
-using Avalonia.Markup.Xaml;
-using AvaloniaLog4NetNoDI.Views;
-
-namespace AvaloniaLog4NetNoDI;
-
-public partial class App : Application
-{
- public override void Initialize()
- {
- AvaloniaXamlLoader.Load(this);
- }
-
- public override void OnFrameworkInitializationCompleted()
- {
- if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
- {
- // Line below is needed to remove Avalonia data validation.
- // Without this line you will get duplicate validations from both Avalonia and CT
- ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin);
- desktop.MainWindow = new MainWindow();
- }
-
- base.OnFrameworkInitializationCompleted();
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj b/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj
deleted file mode 100644
index 5e10e41..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/AvaloniaLog4NetNoDI.csproj
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- WinExe
- net7.0
- enable
- true
- app.manifest
-
-
-
-
- Always
-
-
- Always
-
-
- Always
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PreserveNewest
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs
deleted file mode 100644
index 807d88c..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/DataStores/MainControlsDataStore.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using LogViewer.Core;
-using LogDataStore = LogViewer.Avalonia.Logging.LogDataStore;
-
-namespace AvaloniaLog4NetNoDI.DataStores;
-
-// Application-wide shared instance of the LogDataStore logging entries
-public static class MainControlsDataStore
-{
- public static ILogDataStore DataStore { get; } = new LogDataStore();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs
deleted file mode 100644
index a20fa4c..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Extensions/ServiceExtension.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using AvaloniaLog4NetNoDI.DataStores;
-using LogViewer.Core;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using System;
-using Log4Net.Appender.LogView.Core;
-
-namespace AvaloniaLog4NetNoDI.Extensions;
-
-public static class ServiceExtension
-{
- public static ILoggingBuilder AddLog4NetNoDI(this ILoggingBuilder builder, IConfiguration config)
- {
- // We need to use a shared instance of the DataStore to pass to the LogViewerControl
- builder.Services.AddSingleton(MainControlsDataStore.DataStore);
-
- // call core Log4Net ServiceExtension initializer
- builder.AddLog4Net(config);
-
- return builder;
- }
-
- public static ILoggingBuilder AddLog4NetNoDI(this ILoggingBuilder builder, IConfiguration config, Action configure)
- {
- builder.AddLog4NetNoDI(config);
- builder.Services.Configure(configure);
- return builder;
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs
deleted file mode 100644
index 4749257..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Helpers/LoggingHelper.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using System;
-using System.Drawing;
-using Microsoft.Extensions.Logging;
-using AvaloniaLog4NetNoDI.Extensions;
-using Microsoft.Extensions.Configuration;
-using Common.Core;
-using Common.Core.Extensions;
-
-namespace AvaloniaLog4NetNoDI.Helpers;
-
-// application-wide DataStoreLogger Factory ... returns a wired up Logger instance
-public static class LoggingHelper
-{
- #region Constructors
-
- static LoggingHelper()
- {
- // retrieve the log level from 'appsettings'
- string value = AppSettings.Current("Logging:LogLevel", "Default") ?? "Information";
- Enum.TryParse(value, out LogLevel logLevel);
-
- IConfigurationRoot configuration = new ConfigurationBuilder()
- .Initialize()
- .Build();
-
-
- // wire up the loggers
- Factory = LoggerFactory.Create(builder => builder
-
- // visual debugging tools
- .AddLog4NetNoDI(configuration)
-
- // uncomment to use custom logging colors (note: System.Drawing namespace)
- //
- //.AddLog4NetNoDI(configuration, options =>
- //{
- // options.Colors[LogLevel.Trace] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DarkGray
- // };
-
- // options.Colors[LogLevel.Debug] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Gray
- // };
-
- // options.Colors[LogLevel.Information] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DodgerBlue
- // };
-
- // options.Colors[LogLevel.Warning] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Orchid
- // };
- //})
-
- // set minimum log level from 'appsettings*.json'
- .SetMinimumLevel(logLevel));
- }
-
- #endregion
-
- #region Properties
-
- public static ILoggerFactory Factory { get; }
-
- #endregion
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs
deleted file mode 100644
index 8b8e99f..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Avalonia;
-using System;
-
-namespace AvaloniaLog4NetNoDI;
-
-internal class Program
-{
- // Initialization code. Don't use any Avalonia, third-party APIs or any
- // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
- // yet and stuff might break.
- [STAThread]
- public static void Main(string[] args)
- => BuildAvaloniaApp()
- .StartWithClassicDesktopLifetime(args);
-
- // Avalonia configuration, don't remove; also used by visual designer.
- public static AppBuilder BuildAvaloniaApp()
- => AppBuilder.Configure()
- .UsePlatformDetect()
- .LogToTrace();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json
deleted file mode 100644
index ef5f09f..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Properties/launchSettings.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "profiles": {
- "Development": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Development"
- }
- },
- "Staging": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Staging"
- }
- },
- "Production": {
- "commandName": "Project"
- }
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml
deleted file mode 100644
index a872850..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs
deleted file mode 100644
index 43b485c..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/Views/MainWindow.axaml.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using Avalonia.Controls;
-using AvaloniaLog4NetNoDI.DataStores;
-using AvaloniaLog4NetNoDI.Helpers;
-using LogViewer.Core;
-using Microsoft.Extensions.Logging;
-using RandomLogging.Service;
-using System;
-using System.Reflection;
-using System.Threading;
-
-namespace AvaloniaLog4NetNoDI.Views;
-
-public partial class MainWindow : Window, ILogDataStoreImpl
-{
- public MainWindow()
- {
- InitializeComponent();
-
- // Initialize service and pass in the Logger
- RandomLoggingService service = new(new Logger(LoggingHelper.Factory));
-
- // Get the Launch mode
- bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug",
- StringComparison.InvariantCultureIgnoreCase);
-
- // initialize a logger & EventId
- Logger logger = new Logger(LoggingHelper.Factory);
- EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name);
-
- // log a test pattern for each log level
- logger.TestPattern(eventId: eventId);
-
- // log that we have started...
- logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode");
-
- // Start generating log entries
- _ = service.StartAsync(CancellationToken.None);
-
- // manually wire up the logging to the view ... the control will show backlog entries...
- DataStore = MainControlsDataStore.DataStore;
-
- // we can't bind the controls' DataContext to a static object, so assign the DataStore to the Window
- // and pass a reference to the Window itself
- LogViewerControl.DataContext = this;
- }
-
- public ILogDataStore DataStore { get; init; }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest b/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest
deleted file mode 100644
index e0ce8d0..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/app.manifest
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json
deleted file mode 100644
index 8c1ae04..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Development.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_Dev",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Trace"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Trace"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json
deleted file mode 100644
index 48d4ad8..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.Production.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_Prod",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Warn"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Warn"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json b/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json
deleted file mode 100644
index 3b509e1..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/appsettings.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "System.Net.Http.HttpClient": "Information"
- }
- },
- "Log4NetCore": {
- "Name": "Log4NetLogViewer_default",
- "LoggerRepository": "LogViewerRepository",
- "OverrideCriticalLevelWith": "Critical",
- "Watch": false,
- "UseWebOrAppConfig": false,
- "PropertyOverrides": [
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/layout/conversionPattern",
- "Attributes": {
- "Value": "%date [%thread] %-5level | %logger | %message%newline"
- }
- },
- {
- "XPath": "/log4net/appender[@name='ConsoleAppender']/threshold",
- "Attributes": {
- "Value": "Info"
- }
- },
- {
- "XPath": "/log4net/appender[@name='DataStoreLogger']/threshold",
- "Attributes": {
- "Value": "Info"
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config b/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config
deleted file mode 100644
index dd79167..0000000
--- a/CSharp/Applications/AvaloniaLog4NetNoDI/log4net.config
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/App.axaml b/CSharp/Applications/AvaloniaNlogDI/App.axaml
deleted file mode 100644
index 0a0b4e2..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/App.axaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs b/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs
deleted file mode 100644
index 07dc1fb..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/App.axaml.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System;
-using System.Drawing;
-using System.Reflection;
-using System.Threading;
-using Avalonia;
-using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Data.Core;
-using Avalonia.Data.Core.Plugins;
-using Avalonia.Markup.Xaml;
-using AvaloniaNlogDI.ViewModels;
-using AvaloniaNlogDI.Views;
-using LogViewer.Avalonia;
-using MessageBox.Avalonia;
-using MessageBox.Avalonia.Enums;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Logging;
-using NLog.Target.LogView.Core.Extensions;
-using RandomLogging.Service;
-using Icon = MessageBox.Avalonia.Enums.Icon;
-
-namespace AvaloniaNlogDI;
-
-public partial class App : Application
-{
- public override void Initialize()
- => AvaloniaXamlLoader.Load(this);
-
- public override void OnFrameworkInitializationCompleted()
- {
- if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
- {
- // Line below is needed to remove Avalonia data validation.
- // Without this line you will get duplicate validations from both Avalonia and CT
- ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin);
-
- // catch all unhandled errors
- AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
-
- HostApplicationBuilder builder = Host.CreateApplicationBuilder();
-
- builder
- /*
- * Note: For information on launch profiles for debugging,
- * see article: https://www.codeproject.com/Articles/5354478/NET-App-Settings-Demystified-Csharp-VB
- */
-
- // Register the Random Logging Service
- .AddRandomBackgroundService()
-
- // visual debugging tools
- .AddLogViewer()
-
- // Nlog Target
- //.Logging.AddNLogTargets(builder.Configuration);
-
- // uncomment to use custom logging colors (note: System.Drawing namespace)
- //
- .Logging.AddNLogTargets(builder.Configuration, options =>
- {
- options.Colors[LogLevel.Trace] = new()
- {
- Foreground = Color.White,
- Background = Color.DarkGray
- };
-
- options.Colors[LogLevel.Debug] = new()
- {
- Foreground = Color.White,
- Background = Color.Gray
- };
-
- options.Colors[LogLevel.Information] = new()
- {
- Foreground = Color.White,
- Background = Color.DodgerBlue
- };
-
- options.Colors[LogLevel.Warning] = new()
- {
- Foreground = Color.White,
- Background = Color.Orchid
- };
- });
-
- IServiceCollection services = builder.Services;
-
- services
- .AddSingleton()
- .AddSingleton(service => new MainWindow
- {
- DataContext = service.GetRequiredService()
- });
-
- _host = builder.Build();
- _cancellationTokenSource = new();
-
- try
- {
- LogStartingMode();
-
- // set and show
- desktop.MainWindow = _host.Services.GetRequiredService();
- desktop.ShutdownRequested += OnShutdownRequested;
-
- // startup background services
- _ = _host.StartAsync(_cancellationTokenSource.Token);
- }
- catch (OperationCanceledException)
- {
- // skip
- }
- catch (Exception ex)
- {
- ShowMessageBox("Unhandled Error", ex.Message);
- return;
- }
- }
-
- base.OnFrameworkInitializationCompleted();
- }
-
- private void OnShutdownRequested(object? sender, ShutdownRequestedEventArgs e)
- => _ = _host!.StopAsync(_cancellationTokenSource!.Token);
-
- #region Fields
-
- private IHost? _host;
- private CancellationTokenSource? _cancellationTokenSource;
-
- #endregion
-
- private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
- => ShowMessageBox("Unhandled Error", ((Exception)e.ExceptionObject).Message);
-
- private void ShowMessageBox(string title, string message)
- {
- MessageBox.Avalonia.BaseWindows.Base.IMsBoxWindow messageBoxStandardWindow = MessageBoxManager
- .GetMessageBoxStandardWindow(title, message, ButtonEnum.Ok, Icon.Stop);
-
- messageBoxStandardWindow.Show();
- }
-
- private void LogStartingMode()
- {
- // Get the Launch mode
- bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug",
- StringComparison.InvariantCultureIgnoreCase);
-
- // initialize a logger & EventId
- ILogger logger = _host!.Services.GetRequiredService>();
- EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name);
-
- // log a test pattern for each log level
- logger.TestPattern(eventId: eventId);
-
- // log that we have started...
- logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode");
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj b/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj
deleted file mode 100644
index 5abd9ca..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/AvaloniaNlogDI.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- WinExe
- net7.0
- enable
- true
- app.manifest
-
-
-
-
- Always
-
-
- Always
-
-
- Always
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaNlogDI/Program.cs b/CSharp/Applications/AvaloniaNlogDI/Program.cs
deleted file mode 100644
index b7e42f6..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Avalonia;
-using System;
-
-namespace AvaloniaNlogDI;
-
-internal class Program
-{
- // Initialization code. Don't use any Avalonia, third-party APIs or any
- // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
- // yet and stuff might break.
- [STAThread]
- public static void Main(string[] args)
- => BuildAvaloniaApp()
- .StartWithClassicDesktopLifetime(args);
-
- // Avalonia configuration, don't remove; also used by visual designer.
- public static AppBuilder BuildAvaloniaApp()
- => AppBuilder.Configure()
- .UsePlatformDetect()
- .LogToTrace();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json
deleted file mode 100644
index ef5f09f..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/Properties/launchSettings.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "profiles": {
- "Development": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Development"
- }
- },
- "Staging": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Staging"
- }
- },
- "Production": {
- "commandName": "Project"
- }
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs b/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs
deleted file mode 100644
index 8e5a087..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/ViewLocator.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using Avalonia.Controls;
-using Avalonia.Controls.Templates;
-using AvaloniaNlogDI.ViewModels;
-using System;
-
-namespace AvaloniaNlogDI;
-
-public class ViewLocator : IDataTemplate
-{
- public IControl Build(object data)
- {
- string name = data.GetType().FullName!.Replace("ViewModel", "View");
- Type? type = Type.GetType(name);
-
- if (type != null)
- {
- return (Control)Activator.CreateInstance(type)!;
- }
-
- return new TextBlock { Text = "Not Found: " + name };
- }
-
- public bool Match(object data)
- {
- return data is ViewModelBase;
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs b/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs
deleted file mode 100644
index 647f58f..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/ViewModels/MainViewModel.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using LogViewer.Core.ViewModels;
-
-namespace AvaloniaNlogDI.ViewModels;
-
-public class MainViewModel : ViewModelBase
-{
- #region Constructor
-
- public MainViewModel(LogViewerControlViewModel logViewer)
- {
- LogViewer = logViewer;
- }
-
- #endregion
-
- #region Properties
-
- public LogViewerControlViewModel LogViewer { get; }
-
- #endregion
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs b/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs
deleted file mode 100644
index ab2c57a..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/ViewModels/ViewModelBase.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using CommunityToolkit.Mvvm.ComponentModel;
-
-namespace AvaloniaNlogDI.ViewModels;
-
-public class ViewModelBase : ObservableObject
-{
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml
deleted file mode 100644
index 2b4ead5..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs
deleted file mode 100644
index c6c7d9a..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/Views/MainWindow.axaml.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Avalonia.Controls;
-
-namespace AvaloniaNlogDI.Views;
-
-public partial class MainWindow : Window
-{
- public MainWindow() => InitializeComponent();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/app.manifest b/CSharp/Applications/AvaloniaNlogDI/app.manifest
deleted file mode 100644
index e0ce8d0..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/app.manifest
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json
deleted file mode 100644
index a368fc9..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/appsettings.Development.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Trace",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json
deleted file mode 100644
index 0963039..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/appsettings.Production.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Warning",
- "System.Net.Http.HttpClient": "Warning"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Warn",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogDI/appsettings.json b/CSharp/Applications/AvaloniaNlogDI/appsettings.json
deleted file mode 100644
index 00f8cba..0000000
--- a/CSharp/Applications/AvaloniaNlogDI/appsettings.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "System.Net.Http.HttpClient": "Information"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Info",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml b/CSharp/Applications/AvaloniaNlogNoDI/App.axaml
deleted file mode 100644
index 2c26ed1..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs b/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs
deleted file mode 100644
index d598ead..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/App.axaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using Avalonia;
-using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Data.Core;
-using Avalonia.Data.Core.Plugins;
-using Avalonia.Markup.Xaml;
-using AvaloniaNlogNoDI.Views;
-
-namespace AvaloniaNlogNoDI;
-
-public partial class App : Application
-{
- public override void Initialize()
- {
- AvaloniaXamlLoader.Load(this);
- }
-
- public override void OnFrameworkInitializationCompleted()
- {
- if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
- {
- // Line below is needed to remove Avalonia data validation.
- // Without this line you will get duplicate validations from both Avalonia and CT
- ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin);
- desktop.MainWindow = new MainWindow();
- }
-
- base.OnFrameworkInitializationCompleted();
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj b/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj
deleted file mode 100644
index e130b41..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/AvaloniaNlogNoDI.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- WinExe
- net7.0
- enable
- true
- app.manifest
-
-
-
-
- Always
-
-
- Always
-
-
- Always
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs b/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs
deleted file mode 100644
index ae55c22..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/DataStores/MainControlsDataStore.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using LogViewer.Core;
-using LogDataStore = LogViewer.Avalonia.Logging.LogDataStore;
-
-namespace AvaloniaNlogNoDI.DataStores;
-
-// Application-wide shared instance of the LogDataStore logging entries
-public static class MainControlsDataStore
-{
- public static ILogDataStore DataStore { get; } = new LogDataStore();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs b/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs
deleted file mode 100644
index 9f2c3f7..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Extensions/LoggerExtension.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using AvaloniaNlogNoDI.DataStores;
-using LogViewer.Core;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using NLog.Target.LogView.Core.Extensions;
-using System;
-
-namespace AvaloniaNlogNoDI.Extensions;
-
-public static class ServicesExtension
-{
- public static ILoggingBuilder AddNLogTargetsNoDI(this ILoggingBuilder builder, IConfiguration config)
- {
- // We need to use a shared instance of the DataStore to pass to the LogViewerControl
- builder.Services.AddSingleton(MainControlsDataStore.DataStore);
-
- // call core NLog ServiceExtension initializer
- builder.AddNLogTargets(config);
-
- return builder;
- }
-
- public static ILoggingBuilder AddNLogTargetsNoDI(this ILoggingBuilder builder, IConfiguration config, Action configure)
- {
- builder.AddNLogTargetsNoDI(config);
- builder.Services.Configure(configure);
- return builder;
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs b/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs
deleted file mode 100644
index 3f096a1..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Helpers/LoggingHelper.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using System;
-using System.Drawing;
-using Microsoft.Extensions.Logging;
-using AvaloniaNlogNoDI.Extensions;
-using Microsoft.Extensions.Configuration;
-using Common.Core;
-using Common.Core.Extensions;
-
-namespace AvaloniaNlogNoDI.Helpers;
-
-// application-wide DataStoreLogger Factory ... returns a wired up Logger instance
-public static class LoggingHelper
-{
- #region Constructors
-
- static LoggingHelper()
- {
- // retrieve the log level from 'appsettings'
- string value = AppSettings.Current("Logging:LogLevel", "Default") ?? "Information";
- Enum.TryParse(value, out LogLevel logLevel);
-
- IConfigurationRoot configuration = new ConfigurationBuilder()
- .Initialize()
- .Build();
-
-
- // wire up the loggers
- Factory = LoggerFactory.Create(builder => builder
-
- // visual debugging tools
- .AddNLogTargetsNoDI(configuration)
-
- // uncomment to use custom logging colors (note: System.Drawing namespace)
- //
- //.AddNLogTargets(configuration, options =>
- //{
- // options.Colors[LogLevel.Trace] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DarkGray
- // };
-
- // options.Colors[LogLevel.Debug] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Gray
- // };
-
- // options.Colors[LogLevel.Information] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.DodgerBlue
- // };
-
- // options.Colors[LogLevel.Warning] = new()
- // {
- // Foreground = Color.White,
- // Background = Color.Orchid
- // };
- //})
-
- // set minimum log level from 'appsettings*.json'
- .SetMinimumLevel(logLevel));
- }
-
- #endregion
-
- #region Properties
-
- public static ILoggerFactory Factory { get; }
-
- #endregion
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Program.cs b/CSharp/Applications/AvaloniaNlogNoDI/Program.cs
deleted file mode 100644
index 4b26956..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Avalonia;
-using System;
-
-namespace AvaloniaNlogNoDI;
-
-internal class Program
-{
- // Initialization code. Don't use any Avalonia, third-party APIs or any
- // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
- // yet and stuff might break.
- [STAThread]
- public static void Main(string[] args)
- => BuildAvaloniaApp()
- .StartWithClassicDesktopLifetime(args);
-
- // Avalonia configuration, don't remove; also used by visual designer.
- public static AppBuilder BuildAvaloniaApp()
- => AppBuilder.Configure()
- .UsePlatformDetect()
- .LogToTrace();
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json b/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json
deleted file mode 100644
index ef5f09f..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Properties/launchSettings.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "profiles": {
- "Development": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Development"
- }
- },
- "Staging": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Staging"
- }
- },
- "Production": {
- "commandName": "Project"
- }
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml b/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml
deleted file mode 100644
index dc8cce0..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs b/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs
deleted file mode 100644
index 9bdb3b9..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/Views/MainWindow.axaml.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using Avalonia.Controls;
-using AvaloniaNlogNoDI.DataStores;
-using AvaloniaNlogNoDI.Helpers;
-using LogViewer.Core;
-using Microsoft.Extensions.Logging;
-using RandomLogging.Service;
-using System;
-using System.Reflection;
-using System.Threading;
-
-namespace AvaloniaNlogNoDI.Views;
-
-public partial class MainWindow : Window, ILogDataStoreImpl
-{
- public MainWindow()
- {
- InitializeComponent();
-
- // Initialize service and pass in the Logger
- RandomLoggingService service = new(new Logger(LoggingHelper.Factory));
-
- // Get the Launch mode
- bool isDevelopment = string.Equals(Environment.GetEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES"), "debug",
- StringComparison.InvariantCultureIgnoreCase);
-
- // initialize a logger & EventId
- Logger logger = new Logger(LoggingHelper.Factory);
- EventId eventId = new EventId(id: 0, name: Assembly.GetEntryAssembly()!.GetName().Name);
-
- // log a test pattern for each log level
- logger.TestPattern(eventId: eventId);
-
- // log that we have started...
- logger.Emit(eventId, LogLevel.Information, $"Running in {(isDevelopment ? "Debug" : "Release")} mode");
-
- // Start generating log entries
- _ = service.StartAsync(CancellationToken.None);
-
- // manually wire up the logging to the view ... the control will show backlog entries...
- DataStore = MainControlsDataStore.DataStore;
-
- // we can't bind the controls' DataContext to a static object, so assign the DataStore to the Window
- // and pass a reference to the Window itself
- LogViewerControl.DataContext = this;
- }
-
- public ILogDataStore DataStore { get; init; }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/app.manifest b/CSharp/Applications/AvaloniaNlogNoDI/app.manifest
deleted file mode 100644
index e0ce8d0..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/app.manifest
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json
deleted file mode 100644
index a368fc9..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Development.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Trace",
- "System.Net.Http.HttpClient": "Trace"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Trace",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json
deleted file mode 100644
index 0963039..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.Production.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Warning",
- "System.Net.Http.HttpClient": "Warning"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Warn",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json b/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json
deleted file mode 100644
index 00f8cba..0000000
--- a/CSharp/Applications/AvaloniaNlogNoDI/appsettings.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "System.Net.Http.HttpClient": "Information"
- }
- },
- "NLog": {
- "throwConfigExceptions": true,
- "targets": {
- "async": true,
- "logconsole": {
- "type": "Console",
- "layout": "${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}"
- },
- "DataStoreLogger": {
- "type": "DataStoreLogger",
- "layout": "${message}"
- }
- },
- "rules": [
- {
- "logger": "*",
- "minLevel": "Info",
- "writeTo": "logconsole, DataStoreLogger"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/Logging - CS.sln b/Logging - CS.sln
index 77d548a..b71efe5 100644
--- a/Logging - CS.sln
+++ b/Logging - CS.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.4.33213.308
+# Visual Studio Version 18
+VisualStudioVersion = 18.4.11626.88 stable
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}"
EndProject
@@ -11,16 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.Core", "CSharp\Co
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Apps", "Apps", "{42E99803-0A95-4172-9079-3B8BF8CBDE9F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.Wpf", "CSharp\Controls\LogViewer.Wpf\LogViewer.Wpf.csproj", "{094DF049-194B-43EE-A4EC-EC647FBB44D5}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{E589E611-C328-4D4F-817D-A91D5A1019FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLoggingDI", "CSharp\Applications\WpfLoggingDI\WpfLoggingDI.csproj", "{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Background Services", "Background Services", "{0CDEA51D-46FE-4767-BA2E-8F14582A926D}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogViewer.WinForms", "CSharp\Controls\LogViewer.WinForms\LogViewer.WinForms.csproj", "{5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLoggingDI", "CSharp\Applications\WinFormsLoggingDI\WinFormsLoggingDI.csproj", "{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLoggingNoDI", "CSharp\Applications\WinFormsLoggingNoDI\WinFormsLoggingNoDI.csproj", "{E17466C3-8CC2-43EA-81C7-85F7EB1A7BAB}"
@@ -37,10 +33,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RandomLogging.Service", "CSharp\Background Services\RandomLogging.Service\RandomLogging.Service.csproj", "{18BA2294-FE64-481F-A86F-F5FD84438B66}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Wpf", "CSharp\Core\Common.Wpf\Common.Wpf.csproj", "{A221EE8F-EBAD-4016-89EB-F97956BCEC61}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.WinForms", "CSharp\Core\Common.WinForms\Common.WinForms.csproj", "{19CDD4D0-8826-4538-85CE-74ABAF0483B3}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsLogger.Core", "CSharp\Core\MsLogger.Core\MsLogger.Core.csproj", "{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LoggerProviders", "LoggerProviders", "{23CB559B-2361-4ED6-8A26-D1B1C2005D65}"
@@ -69,40 +61,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsSerilogNoDI", "CSha
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLoggingNoDI", "CSharp\Applications\AvaloniaLoggingNoDI\AvaloniaLoggingNoDI.csproj", "{85C96F55-572A-4FDF-A028-12D27A48FB4D}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NLog", "NLog", "{D1F38E69-F9D3-4B88-A5E1-D452C276EF93}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfNLogDI", "CSharp\Applications\WpfNLogDI\WpfNLogDI.csproj", "{5029989A-051C-4C2D-B119-E237994AC0A7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfNLogNoDI", "CSharp\Applications\WpfNLogNoDI\WpfNLogNoDI.csproj", "{E0E90703-3050-4764-8631-2948CFC18387}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsNLogDI", "CSharp\Applications\WinFormsNLogDI\WinFormsNLogDI.csproj", "{6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsNLogNoDI", "CSharp\Applications\WinFormsNLogNoDI\WinFormsNLogNoDI.csproj", "{B2C63543-DD66-487D-AE75-07C5CE23F040}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaNlogDI", "CSharp\Applications\AvaloniaNlogDI\AvaloniaNlogDI.csproj", "{3B977A58-6F4B-4782-BE1F-82B75A400227}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaNlogNoDI", "CSharp\Applications\AvaloniaNlogNoDI\AvaloniaNlogNoDI.csproj", "{FE9FA295-A5C3-48B8-94C4-FDBA97171D63}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NLog.Target.LogView.Core", "CSharp\Core\NLog.Target.LogView.Core\NLog.Target.LogView.Core.csproj", "{840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{A0B29205-19C3-4FF8-B3A0-28E9E9182E86}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Log4Net.Appender.LogView.Core", "CSharp\Core\Log4Net.Appender.LogView.Core\Log4Net.Appender.LogView.Core.csproj", "{6EA556A7-365C-4693-BDC2-2AAB845560B4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Log4Net", "Log4Net", "{96DDE55E-63E1-4803-BFC5-72D6D38B4746}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLog4NetDI", "CSharp\Applications\WpfLog4NetDI\WpfLog4NetDI.csproj", "{3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLog4NetDI", "CSharp\Applications\AvaloniaLog4NetDI\AvaloniaLog4NetDI.csproj", "{E48DA650-1EA0-4180-AE41-6A1007E5E4A8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaLog4NetNoDI", "CSharp\Applications\AvaloniaLog4NetNoDI\AvaloniaLog4NetNoDI.csproj", "{13F887B6-47E1-4FC9-A8FF-DF542AF05A81}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLog4NetDI", "CSharp\Applications\WinFormsLog4NetDI\WinFormsLog4NetDI.csproj", "{6AF44460-53CE-4563-A03E-A7D297FBC729}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsLog4NetNoDI", "CSharp\Applications\WinFormsLog4NetNoDI\WinFormsLog4NetNoDI.csproj", "{AF87564F-FA75-486C-B35E-C8D29F1A3183}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfLog4NetNoDI", "CSharp\Applications\WpfLog4NetNoDI\WpfLog4NetNoDI.csproj", "{F8F1A367-A352-4338-AAA7-31F6E130CF9C}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resources", "Resources", "{7CD1D21E-CCCF-4458-B5E5-63ED2081E439}"
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Avalonia.Resources", "Resources\Avalonia.Resources\Avalonia.Resources.vbproj", "{30AB364F-51E4-4255-865D-1D163B5F82BC}"
@@ -127,18 +87,10 @@ Global
{34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34F75D8B-6F15-4DE4-8335-FED83557EB8E}.Release|Any CPU.Build.0 = Release|Any CPU
- {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {094DF049-194B-43EE-A4EC-EC647FBB44D5}.Release|Any CPU.Build.0 = Release|Any CPU
{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9FF3C1CB-C95B-4660-8DD7-9B367824B67C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22}.Release|Any CPU.Build.0 = Release|Any CPU
{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -159,14 +111,6 @@ Global
{18BA2294-FE64-481F-A86F-F5FD84438B66}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18BA2294-FE64-481F-A86F-F5FD84438B66}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18BA2294-FE64-481F-A86F-F5FD84438B66}.Release|Any CPU.Build.0 = Release|Any CPU
- {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A221EE8F-EBAD-4016-89EB-F97956BCEC61}.Release|Any CPU.Build.0 = Release|Any CPU
- {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {19CDD4D0-8826-4538-85CE-74ABAF0483B3}.Release|Any CPU.Build.0 = Release|Any CPU
{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -211,62 +155,6 @@ Global
{85C96F55-572A-4FDF-A028-12D27A48FB4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85C96F55-572A-4FDF-A028-12D27A48FB4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85C96F55-572A-4FDF-A028-12D27A48FB4D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5029989A-051C-4C2D-B119-E237994AC0A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5029989A-051C-4C2D-B119-E237994AC0A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5029989A-051C-4C2D-B119-E237994AC0A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5029989A-051C-4C2D-B119-E237994AC0A7}.Release|Any CPU.Build.0 = Release|Any CPU
- {E0E90703-3050-4764-8631-2948CFC18387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E0E90703-3050-4764-8631-2948CFC18387}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E0E90703-3050-4764-8631-2948CFC18387}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E0E90703-3050-4764-8631-2948CFC18387}.Release|Any CPU.Build.0 = Release|Any CPU
- {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405}.Release|Any CPU.Build.0 = Release|Any CPU
- {B2C63543-DD66-487D-AE75-07C5CE23F040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B2C63543-DD66-487D-AE75-07C5CE23F040}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B2C63543-DD66-487D-AE75-07C5CE23F040}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B2C63543-DD66-487D-AE75-07C5CE23F040}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B977A58-6F4B-4782-BE1F-82B75A400227}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B977A58-6F4B-4782-BE1F-82B75A400227}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B977A58-6F4B-4782-BE1F-82B75A400227}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B977A58-6F4B-4782-BE1F-82B75A400227}.Release|Any CPU.Build.0 = Release|Any CPU
- {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FE9FA295-A5C3-48B8-94C4-FDBA97171D63}.Release|Any CPU.Build.0 = Release|Any CPU
- {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F}.Release|Any CPU.Build.0 = Release|Any CPU
- {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6EA556A7-365C-4693-BDC2-2AAB845560B4}.Release|Any CPU.Build.0 = Release|Any CPU
- {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB}.Release|Any CPU.Build.0 = Release|Any CPU
- {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E48DA650-1EA0-4180-AE41-6A1007E5E4A8}.Release|Any CPU.Build.0 = Release|Any CPU
- {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {13F887B6-47E1-4FC9-A8FF-DF542AF05A81}.Release|Any CPU.Build.0 = Release|Any CPU
- {6AF44460-53CE-4563-A03E-A7D297FBC729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6AF44460-53CE-4563-A03E-A7D297FBC729}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6AF44460-53CE-4563-A03E-A7D297FBC729}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6AF44460-53CE-4563-A03E-A7D297FBC729}.Release|Any CPU.Build.0 = Release|Any CPU
- {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AF87564F-FA75-486C-B35E-C8D29F1A3183}.Release|Any CPU.Build.0 = Release|Any CPU
- {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F8F1A367-A352-4338-AAA7-31F6E130CF9C}.Release|Any CPU.Build.0 = Release|Any CPU
{30AB364F-51E4-4255-865D-1D163B5F82BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30AB364F-51E4-4255-865D-1D163B5F82BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30AB364F-51E4-4255-865D-1D163B5F82BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -286,16 +174,12 @@ Global
GlobalSection(NestedProjects) = preSolution
{BB614345-449F-46AD-BE8C-5E2B7616EDE2} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
{34F75D8B-6F15-4DE4-8335-FED83557EB8E} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
- {094DF049-194B-43EE-A4EC-EC647FBB44D5} = {E589E611-C328-4D4F-817D-A91D5A1019FB}
{9FF3C1CB-C95B-4660-8DD7-9B367824B67C} = {8635B709-1D5A-4445-AC45-F99EE264634F}
- {5EEBF0FE-9A6E-4B01-A8E3-1F21F183DF22} = {E589E611-C328-4D4F-817D-A91D5A1019FB}
{82EA3F1F-8267-4920-AD4B-BA7087BBD5DA} = {8635B709-1D5A-4445-AC45-F99EE264634F}
{E17466C3-8CC2-43EA-81C7-85F7EB1A7BAB} = {8635B709-1D5A-4445-AC45-F99EE264634F}
{1688A0C1-1AE6-49F6-972E-C419E2A3B58F} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
{622A3C25-28FD-484A-9CA5-E468CE926673} = {8635B709-1D5A-4445-AC45-F99EE264634F}
{18BA2294-FE64-481F-A86F-F5FD84438B66} = {0CDEA51D-46FE-4767-BA2E-8F14582A926D}
- {A221EE8F-EBAD-4016-89EB-F97956BCEC61} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
- {19CDD4D0-8826-4538-85CE-74ABAF0483B3} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
{0EDAAABD-495D-43A4-BDFB-A0506CAAC07E} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65}
{23CB559B-2361-4ED6-8A26-D1B1C2005D65} = {A3BEB004-4DF7-4281-9A08-8A7BCD4E3CC9}
{8635B709-1D5A-4445-AC45-F99EE264634F} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F}
@@ -310,23 +194,7 @@ Global
{44282198-F1B3-4C63-A52E-D2E6651D298C} = {578FF757-F837-4C23-B2CA-3CF8B016F6A9}
{4F3E2263-7FDD-4EBF-929D-1013473720BE} = {578FF757-F837-4C23-B2CA-3CF8B016F6A9}
{85C96F55-572A-4FDF-A028-12D27A48FB4D} = {8635B709-1D5A-4445-AC45-F99EE264634F}
- {D1F38E69-F9D3-4B88-A5E1-D452C276EF93} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F}
- {5029989A-051C-4C2D-B119-E237994AC0A7} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {E0E90703-3050-4764-8631-2948CFC18387} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {6C76908A-CA1D-4B73-B4C6-E14FE7AE3405} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {B2C63543-DD66-487D-AE75-07C5CE23F040} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {3B977A58-6F4B-4782-BE1F-82B75A400227} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {FE9FA295-A5C3-48B8-94C4-FDBA97171D63} = {D1F38E69-F9D3-4B88-A5E1-D452C276EF93}
- {840A16D5-CCF3-4DAA-A767-6AF7A7F3212F} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65}
{A0B29205-19C3-4FF8-B3A0-28E9E9182E86} = {7CD1D21E-CCCF-4458-B5E5-63ED2081E439}
- {6EA556A7-365C-4693-BDC2-2AAB845560B4} = {23CB559B-2361-4ED6-8A26-D1B1C2005D65}
- {96DDE55E-63E1-4803-BFC5-72D6D38B4746} = {42E99803-0A95-4172-9079-3B8BF8CBDE9F}
- {3AE2C208-0C93-4654-A4A0-A0D0168BC6BB} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
- {E48DA650-1EA0-4180-AE41-6A1007E5E4A8} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
- {13F887B6-47E1-4FC9-A8FF-DF542AF05A81} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
- {6AF44460-53CE-4563-A03E-A7D297FBC729} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
- {AF87564F-FA75-486C-B35E-C8D29F1A3183} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
- {F8F1A367-A352-4338-AAA7-31F6E130CF9C} = {96DDE55E-63E1-4803-BFC5-72D6D38B4746}
{30AB364F-51E4-4255-865D-1D163B5F82BC} = {7CD1D21E-CCCF-4458-B5E5-63ED2081E439}
{170F33B5-C7C4-4D97-8DB9-DE508E2DFCD0} = {A0B29205-19C3-4FF8-B3A0-28E9E9182E86}
{78E23FC2-A337-4FC2-AEBF-CDC517AEA30C} = {8635B709-1D5A-4445-AC45-F99EE264634F}