Exemplo n.º 1
0
        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}.");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Синхронизация индексов устройств.
        /// </summary>
        /// <param name="array">Массив флагов, определяющих изменение
        /// индексов.</param>
        virtual public void Synch(int[] array)
        {
            IDeviceSynchronizeService synchronizer = DeviceSynchronizer
                                                     .GetSynchronizeService();

            synchronizer.SynchronizeDevices(array, ref deviceIndex);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Синхронизация устройств в объекте
        /// </summary>
        /// <param name="array">Массив с индексами синхронизации</param>
        public override void Synch(int[] array)
        {
            // parameterIndexes - не синхронизируем т.к это не устройства.
            IDeviceSynchronizeService synchronizer = DeviceSynchronizer
                                                     .GetSynchronizeService();

            synchronizer.SynchronizeDevices(array, ref devicesIndexes);

            SetValue(GetDevicesAndParametersString());
        }
Exemplo n.º 6
0
 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.");
            }
        }