public override ActionBase GetAction()
 {
     if (this.OBSStudioTypeComboBox.SelectedIndex >= 0)
     {
         if (this.OBSStudioSceneGrid.Visibility == Visibility.Visible && !string.IsNullOrEmpty(this.OBSStudioSceneNameTextBox.Text))
         {
             return(new OBSStudioAction(this.OBSStudioSceneCollectionNameTextBox.Text, this.OBSStudioSceneNameTextBox.Text));
         }
         else if (this.OBSStudioSourceGrid.Visibility == Visibility.Visible && !string.IsNullOrEmpty(this.OBSStudioSourceNameTextBox.Text))
         {
             if (this.OBSStudioSourceTextGrid.Visibility == Visibility.Visible)
             {
                 if (!string.IsNullOrEmpty(this.OBSStudioSourceTextTextBox.Text))
                 {
                     OBSStudioAction action = new OBSStudioAction(this.OBSStudioSourceNameTextBox.Text, this.OBSStudioSourceVisibleCheckBox.IsChecked.GetValueOrDefault(), this.OBSStudioSourceTextTextBox.Text);
                     action.UpdateReferenceTextFile();
                     return(action);
                 }
             }
             else if (this.OBSStudioSourceWebBrowserGrid.Visibility == Visibility.Visible)
             {
                 if (!string.IsNullOrEmpty(this.OBSStudioSourceWebPageTextBox.Text))
                 {
                     return(new OBSStudioAction(this.OBSStudioSourceNameTextBox.Text, this.OBSStudioSourceVisibleCheckBox.IsChecked.GetValueOrDefault(), null, this.OBSStudioSourceWebPageTextBox.Text));
                 }
             }
             else if (this.OBSStudioSourceDimensionsGrid.Visibility == Visibility.Visible)
             {
                 int   x, y, rotation;
                 float xScale, yScale;
                 if (int.TryParse(this.OBSStudioSourceDimensionsXPositionTextBox.Text, out x) && int.TryParse(this.OBSStudioSourceDimensionsYPositionTextBox.Text, out y) &&
                     int.TryParse(this.OBSStudioSourceDimensionsRotationTextBox.Text, out rotation) && float.TryParse(this.OBSStudioSourceDimensionsXScaleTextBox.Text, out xScale) &&
                     float.TryParse(this.OBSStudioSourceDimensionsYScaleTextBox.Text, out yScale))
                 {
                     return(new OBSStudioAction(this.OBSStudioSourceNameTextBox.Text, this.OBSStudioSourceVisibleCheckBox.IsChecked.GetValueOrDefault(),
                                                new OBSSourceDimensions()
                     {
                         X = x, Y = y, Rotation = rotation, XScale = xScale, YScale = yScale
                     }));
                 }
             }
             else
             {
                 return(new OBSStudioAction(this.OBSStudioSourceNameTextBox.Text, this.OBSStudioSourceVisibleCheckBox.IsChecked.GetValueOrDefault()));
             }
         }
     }
     return(null);
 }