network-resurrector/NetworkResurrector.Api/Extensions/WakeOnLanExtensions.cs

38 lines
1.1 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using NetworkResurrector.WakeOnLan.Inhouse;
using NetworkResurrector.WakeOnLan.Nikeee;
using System;
namespace NetworkResurrector.Api.Extensions
{
public static class WakeOnLanExtensions
{
private struct WolProvider
{
public const string
Inhouse = "Inhouse",
Nikeee = "Nikeee";
}
public static void AddWakeOnLan(this IServiceCollection services, IConfiguration configuration)
{
var wolProvider = configuration.GetSection("WakeOnLan").GetSection("Provider").GetValue<string>("Use");
switch (wolProvider)
{
case WolProvider.Inhouse:
services.AddWakeOnLanInhouseService();
break;
case WolProvider.Nikeee:
services.AddWakeOnLanNikeeeService();
break;
default:
throw new Exception($"Wake on LAN provider '{wolProvider}' is not implemented.");
}
}
}
}