Esempio n. 1
0
        protected async override Task Handle(UpdateDevice request, CancellationToken cancellationToken)
        {
            var device = await _deviceRepository.Get(request.Id);

            device.Enabled = request.Enabled;
            await _deviceRepository.Update(device);

            if (device.Enabled)
            {
                await _mqttService.SubscribeDevice(device.Id);
            }
            else
            {
                return;
            }

            if (request.HasOutsideTemperatureSensor is { })
        async Task OnStarted()
        {
            using (var scope = _serviceScopeFactory.CreateScope())
            {
                var deviceRepository = scope.ServiceProvider.GetService <IDeviceRepository>();
                var devices          = (await deviceRepository.FindAllEnabled()).Select(x => x.Id);

                if (!devices.Any())
                {
                    return;
                }

                foreach (var device in devices)
                {
                    await _mqttService.SubscribeDevice(device);
                }
            }
        }