public override ActionBase GetAction() { if (this.TypeComboBox.SelectedIndex >= 0) { InteractiveActionTypeEnum interactiveType = EnumHelper.GetEnumValueFromString <InteractiveActionTypeEnum>((string)this.TypeComboBox.SelectedItem); if (interactiveType == InteractiveActionTypeEnum.MoveUserToGroup && !string.IsNullOrEmpty(this.MoveUserToGroupGroupNameTextBox.Text) && this.MoveUserToGroupPermissionsAllowedComboBox.SelectedIndex >= 0) { return(InteractiveAction.CreateMoveUserToGroupAction(this.MoveUserToGroupGroupNameTextBox.Text, EnumHelper.GetEnumValueFromString <MixerRoleEnum>((string)this.MoveUserToGroupPermissionsAllowedComboBox.SelectedItem), this.MoveUserToGroupUserNameTextBox.Text)); } else if (interactiveType == InteractiveActionTypeEnum.MoveUserToScene && this.MoveUserToScenePermissionsAllowedComboBox.SelectedIndex >= 0 && !string.IsNullOrEmpty(this.MoveUserToSceneSceneIDTextBox.Text)) { return(InteractiveAction.CreateMoveUserToSceneAction(this.MoveUserToSceneSceneIDTextBox.Text, EnumHelper.GetEnumValueFromString <MixerRoleEnum>((string)this.MoveUserToScenePermissionsAllowedComboBox.SelectedItem), this.MoveUserToSceneUserNameTextBox.Text)); } else if (interactiveType == InteractiveActionTypeEnum.MoveGroupToScene && !string.IsNullOrEmpty(this.MoveGroupToSceneGroupNameTextBox.Text) && !string.IsNullOrEmpty(this.MoveGroupToSceneSceneIDTextBox.Text)) { return(InteractiveAction.CreateMoveGroupToSceneAction(this.MoveGroupToSceneGroupNameTextBox.Text, this.MoveGroupToSceneSceneIDTextBox.Text)); } else if (interactiveType == InteractiveActionTypeEnum.MoveAllUsersToGroup && !string.IsNullOrEmpty(this.MoveAllUsersToGroupGroupNameTextBox.Text)) { return(InteractiveAction.CreateMoveAllUsersToGroupAction(this.MoveAllUsersToGroupGroupNameTextBox.Text, EnumHelper.GetEnumValueFromString <MixerRoleEnum>((string)this.MoveAllUsersToGroupPermissionsAllowedComboBox.SelectedItem))); } else if (interactiveType == InteractiveActionTypeEnum.MoveAllUsersToScene && !string.IsNullOrEmpty(this.MoveAllUsersToSceneSceneNameTextBox.Text)) { return(InteractiveAction.CreateMoveAllUsersToSceneAction(this.MoveAllUsersToSceneSceneNameTextBox.Text, EnumHelper.GetEnumValueFromString <MixerRoleEnum>((string)this.MoveAllUsersToScenePermissionsAllowedComboBox.SelectedItem))); } else if (interactiveType == InteractiveActionTypeEnum.CooldownButton || interactiveType == InteractiveActionTypeEnum.CooldownGroup || interactiveType == InteractiveActionTypeEnum.CooldownScene) { if (!string.IsNullOrEmpty(this.CooldownNameTextBox.Text) && int.TryParse(this.CooldownAmountTextBox.Text, out int cooldownAmount) && cooldownAmount > 0) { return(InteractiveAction.CreateCooldownAction(interactiveType, this.CooldownNameTextBox.Text, cooldownAmount)); } } else if (interactiveType == InteractiveActionTypeEnum.Connect) { if (this.GameComboBox.SelectedIndex >= 0) { InteractiveGameModel game = (InteractiveGameModel)this.GameComboBox.SelectedItem; return(InteractiveAction.CreateConnectAction(game)); } } else if (interactiveType == InteractiveActionTypeEnum.Disconnect) { return(new InteractiveAction(interactiveType)); } else if (interactiveType == InteractiveActionTypeEnum.UpdateControl) { if (!string.IsNullOrEmpty(this.UpdateControlNameTextBox.Text) && this.UpdateControlTypeComboBox.SelectedIndex >= 0 && !string.IsNullOrEmpty(this.UpdateControlValueTextBox.Text)) { return(InteractiveAction.CreateUpdateControlAction( EnumHelper.GetEnumValueFromString <InteractiveActionUpdateControlTypeEnum>((string)this.UpdateControlTypeComboBox.SelectedItem), this.UpdateControlNameTextBox.Text, this.UpdateControlValueTextBox.Text)); } } else if (interactiveType == InteractiveActionTypeEnum.SetCustomMetadata) { if (!string.IsNullOrEmpty(this.CustomMetadataControlIDTextBox.Text) && this.customMetadataPairs.Count > 0) { foreach (CustomMetadataPair pair in this.customMetadataPairs) { if (string.IsNullOrEmpty(pair.Name) || string.IsNullOrEmpty(pair.Value)) { return(null); } } return(InteractiveAction.CreateSetCustomMetadataAction(this.CustomMetadataControlIDTextBox.Text, this.customMetadataPairs.ToDictionary(p => p.Name, p => p.Value))); } } else if (interactiveType == InteractiveActionTypeEnum.EnableDisableControl) { if (!string.IsNullOrEmpty(this.EnableDisableControlNameTextBox.Text)) { return(InteractiveAction.CreateEnableDisableControlAction(this.EnableDisableControlNameTextBox.Text, this.EnableDisableControlToggleButton.IsChecked.GetValueOrDefault())); } } } return(null); }