40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
|
|
using Inventory.Core;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using DotNetEnv;
|
|
|
|
namespace Inventory.Agent
|
|
{
|
|
public class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
CreateHostBuilder(args).Build().Run();
|
|
}
|
|
|
|
public static IHostBuilder CreateHostBuilder(string[] args)
|
|
{
|
|
Env.TraversePath().Load();
|
|
string dbCon = Env.GetString("DB_CONNECTION_STRING");
|
|
return Host.CreateDefaultBuilder(args)
|
|
.UseWindowsService()
|
|
.ConfigureServices((hostContext, services) =>
|
|
{
|
|
services.AddDbContext<InventoryContext>(options =>
|
|
options.UseSqlServer(dbCon));
|
|
|
|
services.AddHttpClient();
|
|
services.AddSingleton<SystemInfoCollector>();
|
|
services.AddScoped<DatabaseUpdater>();
|
|
services.AddScoped<HealthMonitor>();
|
|
services.AddScoped<SlurpitClient>();
|
|
services.AddScoped<UpdateWorkflow>();
|
|
services.AddHostedService<Worker>();
|
|
});
|
|
}
|
|
}
|
|
}
|