casa-bot/src/CasaBot/AutoScan/DependencyInjectionExtensions.cs

33 lines
994 B
C#
Raw Normal View History

using AutoScan.Listener;
using CasaBotApp;
using Microsoft.Extensions.DependencyInjection;
using Quartz;
namespace AutoScan;
public static class DependencyInjectionExtensions
{
public static void AddAutoScan(this IServiceCollection services)
{
services.AddSingleton<ShinobiConnector>();
services.AddSingleton<DVRScanner>();
services.AddSingleton<FfmpegWrapper>();
services.AddSingleton<AutoScanApp>();
services.AddQuartz(q =>
{
q.UseMicrosoftDependencyInjectionJobFactory();
});
services.AddTransient<IChainerListenerFactory, ChainerListenerFactory>();
services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true);
services.AddSingleton<IScheduler>(sp =>
{
var schedulerFactory = sp.GetRequiredService<ISchedulerFactory>();
var tsk = schedulerFactory.GetScheduler();
tsk.Wait();
return tsk.Result;
});
}
}