static async Task <int> Main(string[] args) { var loggerFactory = LoggerFactory.Create(builder => { builder .AddFilter("Microsoft", LogLevel.Warning) .AddFilter("System", LogLevel.Warning) .AddFilter("LoggingConsoleApp.Program", LogLevel.Debug) .AddConsole() .AddEventLog(); }); ILogger logger = loggerFactory.CreateLogger <Program>(); var deviceSynchronizer = new DeviceSynchronizer(GetConnectionStrings(), logger); var isSuccess = await deviceSynchronizer.SyncIotHubsAsync(); if (isSuccess) { logger.LogInformation("IoT Hub synchronization completed successfully."); return((int)ExitCode.Success); } else { logger.LogError("IoT Hub synchronization completed with errors."); return((int)ExitCode.Error); } }
public static async Task EventGridDeviceCreatedOrDeleted([EventGridTrigger] EventGridEvent eventGridEvent, ILogger logger, ExecutionContext context) { bool isSuccess = true; if (eventGridEvent.EventType == EventTypes.IoTHubDeviceCreatedEvent || eventGridEvent.EventType == EventTypes.IoTHubDeviceDeletedEvent) { var deviceSynchronizer = new DeviceSynchronizer(GetConnectionStrings(context), logger); if (eventGridEvent.EventType == EventTypes.IoTHubDeviceCreatedEvent) { logger.LogInformation($"EventGridDeviceCreatedOrDeleted function received IotHubDeviceCreatedEventData event from EventGrid."); isSuccess = await deviceSynchronizer.CreateDevice(eventGridEvent.Data.ToString()); } else if (eventGridEvent.EventType == EventTypes.IoTHubDeviceDeletedEvent) { logger.LogInformation($"EventGridDeviceCreatedOrDeleted function received IotHubDeviceDeletedEventData event from EventGrid."); isSuccess = await deviceSynchronizer.DeleteDevice(eventGridEvent.Data.ToString()); } if (isSuccess) { logger.LogInformation($"EventGridDeviceCreatedOrDeleted function completed successfully."); } else { logger.LogError($"EventGridDeviceCreatedOrDeleted function completed with errors."); } } else { logger.LogInformation($"EventGridDeviceCreatedOrDeleted function received unsupported event: {eventGridEvent.EventType}."); } }
/// <summary> /// Синхронизация индексов устройств. /// </summary> /// <param name="array">Массив флагов, определяющих изменение /// индексов.</param> virtual public void Synch(int[] array) { IDeviceSynchronizeService synchronizer = DeviceSynchronizer .GetSynchronizeService(); synchronizer.SynchronizeDevices(array, ref deviceIndex); }
public DeviceSynchronizerSingleton(IConfiguration config, ILogger <DeviceSynchronizerSingleton> logger) { var connectionStrings = new ConnectionStrings( config.GetValue <string>(Constants.IotHubConnectionStringMaster), config.GetValue <string>(Constants.IotHubConnectionStringSlave)); DeviceSynchronizer = new DeviceSynchronizer(connectionStrings, logger); }
/// <summary> /// Синхронизация устройств в объекте /// </summary> /// <param name="array">Массив с индексами синхронизации</param> public override void Synch(int[] array) { // parameterIndexes - не синхронизируем т.к это не устройства. IDeviceSynchronizeService synchronizer = DeviceSynchronizer .GetSynchronizeService(); synchronizer.SynchronizeDevices(array, ref devicesIndexes); SetValue(GetDevicesAndParametersString()); }
public virtual void Synch(int[] array) { if (OnlyDevicesInParameter) { IDeviceSynchronizeService synchronizer = DeviceSynchronizer .GetSynchronizeService(); synchronizer.SynchronizeDevices(array, ref devicesIndexes); SetValue(GetDevicesString()); } }
public void Synchronize_UseSynchronizeService_UpdateIndexesInList( int[] actualDevArray, List <int> actualDevIndexes, List <int> expectedDevIndexes) { IDeviceSynchronizeService deviceSynchronizeService = DeviceSynchronizer.GetSynchronizeService(); deviceSynchronizeService.SynchronizeDevices(actualDevArray, ref actualDevIndexes); Assert.AreEqual(expectedDevIndexes, actualDevIndexes); }
public static async Task TimerTriggerSyncIotHubs([TimerTrigger("0 0 * * * *")] TimerInfo myTimer, ILogger logger, ExecutionContext context) { logger.LogInformation($"TimerTriggerSyncIotHubs function started."); var deviceSynchronizer = new DeviceSynchronizer(GetConnectionStrings(context), logger); var isSuccess = await deviceSynchronizer.SyncIotHubsAsync(); if (isSuccess) { logger.LogInformation($"TimerTriggerSyncIotHubs function completed successfully."); } else { logger.LogError($"TimerTriggerSyncIotHubs function completed with errors."); } }