using Hangfire; using Hangfire.Storage.SQLite; using Microsoft.Extensions.DependencyInjection; using MTWireGuard.Application.Mapper; using MTWireGuard.Application.Repositories; using MTWireGuard.Application.Services; using System.Reflection; namespace MTWireGuard.Application { public static class ApplicationServiceRegister { public static void AddApplicationServices(this IServiceCollection services) { // Add DBContext services.AddDbContext(ServiceLifetime.Singleton); // Add HangFire services.AddHangfire(config => { config.UseSQLiteStorage(Path.Join(AppDomain.CurrentDomain.BaseDirectory, "MikrotikWireguard.db")); }); services.AddHangfireServer(); // Auto Mapper Configurations services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddAutoMapper( (provider, expression) => { expression.AddProfile(provider.GetService()); expression.AddProfile(provider.GetService()); expression.AddProfile(provider.GetService()); }, new List()); // Add Mikrotik API Service services.AddSingleton(); } } }