Esempio n. 1
0
        public async Task <IActionResult> TurnOff(int id)
        {
            var powerSwitch = jsonDatabaseService.PowerSwitches.FirstOrDefault(ps => ps.ID == id);

            if (powerSwitch == null)
            {
                logger.LogError($"PowerSwitchAPI.TurnOff: No power switch found with ID '{id}'.");
                return(Ok(new ChangeStatusModel {
                    IsOn = false, Result = false
                }));
            }

            ChangeStatusModel model = new ChangeStatusModel();

            try
            {
                var         arguments   = new ActionExecutionArguments(powerSwitch, new Device[] { powerSwitch }, serviceProvider);
                StateAction stateAction = new StateAction {
                    Devices = new int[] { powerSwitch.ID }, State = Entities.Enums.DeviceState.Off
                };
                await stateAction.Execute(arguments);

                logger.LogInformation($"PowerSwitchAPI.TurnOff: Successfully turned power switch OFF with ID '{id}'.");

                model.IsOn   = false;
                model.Result = true;
            }
            catch
            {
                logger.LogError($"PowerSwitchAPI.TurnOff: Failed to turn power switch OFF with ID '{id}'.");
            }

            return(Ok(model));
        }