Console base WIP 2

This commit is contained in:
2023-08-07 17:52:47 +02:00
parent b9adbc8272
commit 9a63516aba
18 changed files with 193 additions and 79 deletions

View File

@@ -4,6 +4,7 @@ using FileTime.App.DependencyInjection;
using FileTime.App.FrequencyNavigation;
using FileTime.App.Search;
using FileTime.ConsoleUI.App;
using FileTime.ConsoleUI.App.Services;
using FileTime.Providers.Local;
using FileTime.Server.Common;
using FileTime.Tools.Compression;
@@ -13,21 +14,42 @@ using Serilog;
namespace FileTime.ConsoleUI;
public class DI
public static class DI
{
public static IServiceProvider ServiceProvider { get; set; } = null!;
public static IServiceProvider ServiceProvider { get; private set; } = null!;
public static void Initialize(IConfigurationRoot configuration)
=> ServiceProvider = DependencyInjection
.RegisterDefaultServices(configuration: configuration)
.AddConsoleServices()
.AddLocalProviderServices()
.AddServerCoreServices()
.AddFrequencyNavigation()
.AddCommandPalette()
.AddContainerSizeScanner()
.AddSearch()
.AddCompression()
.AddLogging(loggingBuilder => loggingBuilder.AddSerilog())
.BuildServiceProvider();
.RegisterDefaultServices(configuration: configuration)
.AddConsoleServices()
.AddLocalProviderServices()
.AddServerCoreServices()
.AddFrequencyNavigation()
.AddCommandPalette()
.AddContainerSizeScanner()
.AddSearch()
.AddCompression()
.SetupLogging()
.AddLogging(loggingBuilder => loggingBuilder.AddSerilog())
.BuildServiceProvider();
private static IServiceCollection SetupLogging(this IServiceCollection serviceCollection) =>
serviceCollection.AddSerilog(
(serviceProvider, loggerConfiguration) =>
{
loggerConfiguration
#if DEBUG || VERBOSE_LOGGING
.MinimumLevel.Verbose()
#endif
.ReadFrom.Configuration(serviceProvider.GetRequiredService<IConfiguration>())
.Enrich.FromLogContext()
.WriteTo.File(
Path.Combine(Program.AppDataRoot, "logs", "appLog.log"),
fileSizeLimitBytes: 10 * 1024 * 1024,
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true)
.WriteTo.Sink(serviceProvider.GetRequiredService<CustomLoggerSink>());
}
);
}

View File

@@ -23,6 +23,11 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
<PackageReference Include="Serilog" Version="3.0.1" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="7.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="7.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup>
</Project>

View File

@@ -1,9 +1,13 @@
using FileTime.ConsoleUI;
using FileTime.App.Core;
using FileTime.App.Core.Configuration;
using FileTime.ConsoleUI;
using FileTime.ConsoleUI.App;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
(AppDataRoot, EnvironmentName) = Init.InitDevelopment();
var configuration = new ConfigurationBuilder()
.AddInMemoryCollection(MainConfiguration.Configuration)
#if DEBUG
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
#endif
@@ -11,4 +15,10 @@ var configuration = new ConfigurationBuilder()
DI.Initialize(configuration);
var app = DI.ServiceProvider.GetRequiredService<IApplication>();
app.Run();
app.Run();
public partial class Program
{
public static string AppDataRoot { get; private set; }
public static string EnvironmentName { get; private set; }
}