private static void ConfigureServices(IServiceCollection services, IConfiguration configuration) { DevicesConfiguration devicesConfiguration = new DevicesConfiguration(); configuration.Bind(devicesConfiguration); services .Configure <DeviceConfiguration>("FilterWheel", configuration.GetSection("Devices:FilterWheel")) .AddLogging(configure => configure.AddSerilog()) .AddSingleton <ILoggerFactory>(s => new SerilogLoggerFactory(Log.Logger, true)) .AddSingleton <IClientTransactionIdGenerator, ClientTransactionIdGenerator>() .AddDevices(devicesConfiguration) .AddSingleton <IDeviceProvider, DeviceProvider>() .AddTransient <IDeviceDemo, DomeDemo>(); }
public DataService(IOptions <DevicesConfiguration> devicesConfiguration, ILoggerFactory loggerFactory, IOltFormatChecks oltFormatChecks, IResponseDescriptionDictionaries responseDescriptionDictionaries, IStringLocalizer <DataService> localizerDataService, IStringLocalizer <Olt> localizerOlt) { _devicesConfiguration = devicesConfiguration.Value; _loggerFactory = loggerFactory; _localizerDataService = localizerDataService; _responseDescriptionDictionaries = responseDescriptionDictionaries; var logger = _loggerFactory.CreateLogger(_localizerDataService["SNMP Data Service"]); try { foreach (var device in _devicesConfiguration.Devices) { configuredOlts.Add(new Olt(device.Id, device.Name, device.IpAddress, device.SnmpPort, device.SnmpVersion, device.SnmpCommunity, device.SnmpTimeout, oltFormatChecks, localizerOlt)); } } catch (Exception exception) { logger.LogError(_localizerDataService["enviroment configuration: "] + exception.Message); } }
public OnuApiController(IOptions <DevicesConfiguration> devicesConfiguration, IDataService snmpDataService) { _devicesConfiguration = devicesConfiguration.Value; _snmpDataService = snmpDataService; }
public OltController(IOptions <DevicesConfiguration> devicesConfiguration, IDataService dataService, IStringLocalizer <OltController> localizer) { _devicesConfiguration = devicesConfiguration.Value; _dataService = dataService; _localizer = localizer; }
public static IServiceCollection AddDevices(this IServiceCollection services, DevicesConfiguration devicesConfiguration) { foreach (var deviceConfiguration in devicesConfiguration.Devices) { services.AddScoped <IDevice>(ctx => { var clientTransactionIdGenerator = ctx.GetService <IClientTransactionIdGenerator>(); switch (deviceConfiguration.DeviceType) { case DeviceType.FilterWheel: return(new FilterWheel(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Switch: return(new Switch(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.SafetyMonitor: return(new SafetyMonitor(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Dome: return(new Dome(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Camera: return(new Camera(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.ObservingConditions: return(new ObservingConditions(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Focuser: return(new Focuser(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Rotator: return(new Rotator(deviceConfiguration, clientTransactionIdGenerator)); case DeviceType.Telescope: return(new Telescope(deviceConfiguration, clientTransactionIdGenerator)); default: throw new InvalidEnumArgumentException(deviceConfiguration.DeviceType.ToString()); } }); } return(services); }