FilesService: used WebApplicationBuilder

This commit is contained in:
Maksim Chegulov 2022-02-24 11:58:41 +03:00
parent 89f72e80ad
commit b3317f35fc
2 changed files with 118 additions and 115 deletions

View File

@ -4,7 +4,6 @@ global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Linq.Expressions;
global using System.Net;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
@ -21,12 +20,12 @@ global using ASC.Core.Common.EF;
global using ASC.Core.Tenants;
global using ASC.ElasticSearch;
global using ASC.Feed;
global using ASC.Feed.Aggregator;
global using ASC.Feed.Data;
global using ASC.Files.Core;
global using ASC.Files.Core.EF;
global using ASC.Files.Core.Security;
global using ASC.Files.ThumbnailBuilder;
global using ASC.ElasticSearch.Service;
global using ASC.Web.Core;
global using ASC.Web.Core.Files;
global using ASC.Web.Core.Users;
@ -45,6 +44,8 @@ global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Options;
global using Microsoft.AspNetCore.Builder;
global using Microsoft.Extensions.Hosting.WindowsServices;
global using SixLabors.ImageSharp;
global using SixLabors.ImageSharp.Formats.Png;

View File

@ -1,34 +1,30 @@
using ASC.ElasticSearch.Service;
namespace ASC.Files.Service
var options = new WebApplicationOptions
{
public static class Program
{
public async static Task Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
Args = args,
ContentRootPath = WindowsServiceHelpers.IsWindowsService() ? AppContext.BaseDirectory : default
};
await host.RunAsync();
}
var builder = WebApplication.CreateBuilder(options);
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSystemd()
.UseWindowsService()
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<BaseWorkerStartup>())
.ConfigureAppConfiguration((hostContext, config) =>
{
var buided = config.Build();
var path = buided["pathToConf"];
builder.Host.UseSystemd();
builder.Host.UseWindowsService();
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureAppConfiguration((hostContext, config) =>
{
var buildedConfig = config.Build();
var path = buildedConfig["pathToConf"];
if (!Path.IsPathRooted(path))
{
path = Path.GetFullPath(CrossPlatform.PathCombine(hostContext.HostingEnvironment.ContentRootPath, path));
}
config.SetBasePath(path);
var env = hostContext.Configuration.GetValue("ENVIRONMENT", "Production");
config
.AddJsonFile("appsettings.json")
config.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env}.json", true)
.AddJsonFile($"appsettings.services.json", true)
.AddJsonFile("storage.json")
@ -44,11 +40,11 @@ namespace ASC.Files.Service
.AddInMemoryCollection(new Dictionary<string, string>
{
{"pathToConf", path }
}
);
})
.ConfigureServices((hostContext, services) =>
{
});
});
builder.Host.ConfigureServices((hostContext, services) =>
{
services.AddMemoryCache();
services.AddHttpClient();
@ -72,7 +68,6 @@ namespace ASC.Files.Service
diHelper.TryAdd(typeof(ICacheNotify<>), typeof(MemoryCacheNotify<>));
}
diHelper.RegisterProducts(hostContext.Configuration, hostContext.HostingEnvironment.ContentRootPath);
if (!bool.TryParse(hostContext.Configuration["disable_elastic"], out var disableElastic))
@ -105,12 +100,19 @@ namespace ASC.Files.Service
diHelper.TryAdd<SecurityContext>();
diHelper.TryAdd<TenantManager>();
diHelper.TryAdd<UserManager>();
});
})
.ConfigureContainer<ContainerBuilder>((context, builder) =>
{
builder.Host.ConfigureContainer<ContainerBuilder>((context, builder) =>
{
builder.Register(context.Configuration, true, false, "search.json", "feed.json");
})
.ConfigureNLogLogging();
}
}
});
var startup = new BaseWorkerStartup(builder.Configuration);
startup.ConfigureServices(builder.Services);
var app = builder.Build();
startup.Configure(app);
await app.RunAsync();