public async Task UpdateControls(InteractiveConnectedSceneModel scene, IEnumerable <InteractiveControlModel> controls) { List <InteractiveControlModel> updatedControls = new List <InteractiveControlModel>(); foreach (InteractiveControlModel control in controls) { if (control is InteractiveConnectedButtonControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveConnectedButtonControlModel>(control)); } else if (control is InteractiveConnectedJoystickControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveConnectedJoystickControlModel>(control)); } else if (control is InteractiveConnectedTextBoxControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveConnectedTextBoxControlModel>(control)); } else if (control is InteractiveConnectedLabelControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveConnectedLabelControlModel>(control)); } else if (control is InteractiveButtonControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveButtonControlModel>(control)); } else if (control is InteractiveJoystickControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveJoystickControlModel>(control)); } else if (control is InteractiveTextBoxControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveTextBoxControlModel>(control)); } else if (control is InteractiveLabelControlModel) { updatedControls.Add(SerializerHelper.Clone <InteractiveLabelControlModel>(control)); } else { updatedControls.Add(SerializerHelper.Clone <InteractiveControlModel>(control)); } } foreach (InteractiveControlModel control in updatedControls) { control.position = null; } await this.RunAsync(this.Client.UpdateControls(scene, updatedControls)); }