44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using MareSynchronosServices;
 | |
| using MareSynchronosShared.Data;
 | |
| using MareSynchronosShared.Metrics;
 | |
| using Microsoft.AspNetCore.Hosting;
 | |
| using Microsoft.Extensions.DependencyInjection;
 | |
| using Microsoft.Extensions.Hosting;
 | |
| using Microsoft.Extensions.Logging;
 | |
| using System;
 | |
| using System.Linq;
 | |
| 
 | |
| public class Program
 | |
| {
 | |
|     public static void Main(string[] args)
 | |
|     {
 | |
|         var hostBuilder = CreateHostBuilder(args);
 | |
|         var host = hostBuilder.Build();
 | |
| 
 | |
|         using (var scope = host.Services.CreateScope())
 | |
|         {
 | |
|             var services = scope.ServiceProvider;
 | |
|             using var dbContext = services.GetRequiredService<MareDbContext>();
 | |
|             var metrics = services.GetRequiredService<MareMetrics>();
 | |
| 
 | |
|             metrics.SetGaugeTo(MetricsAPI.GaugeUsersRegistered, dbContext.Users.Count());
 | |
|         }
 | |
| 
 | |
|         host.Run();
 | |
|     }
 | |
| 
 | |
|     public static IHostBuilder CreateHostBuilder(string[] args) =>
 | |
|         Host.CreateDefaultBuilder(args)
 | |
|             .UseSystemd()
 | |
|             .UseConsoleLifetime()
 | |
|             .ConfigureWebHostDefaults(webBuilder =>
 | |
|             {
 | |
|                 webBuilder.UseContentRoot(AppContext.BaseDirectory);
 | |
|                 webBuilder.ConfigureLogging((ctx, builder) =>
 | |
|                 {
 | |
|                     builder.AddConfiguration(ctx.Configuration.GetSection("Logging"));
 | |
|                     builder.AddFile(o => o.RootPath = AppContext.BaseDirectory);
 | |
|                 });
 | |
|                 webBuilder.UseStartup<Startup>();
 | |
|             });
 | |
| } | 
