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>();
        }
Beispiel #2
0
        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;
 }
Beispiel #5
0
        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);
        }