Console base WIP 2
This commit is contained in:
@@ -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>());
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
Reference in New Issue
Block a user