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)); }