/// <summary>
        /// Creates script according parameters of this parameterset
        /// </summary>
        /// <returns>Return script of this parameterset parameters</returns>
        public string GetScript()
        {
            if (this.Parameters == null || this.Parameters.Count == 0)
            {
                return(string.Empty);
            }

            StringBuilder builder = new StringBuilder();

            foreach (ParameterViewModel parameter in this.Parameters)
            {
                if (parameter.Value == null)
                {
                    continue;
                }

                if (parameter.Parameter.ParameterType.IsSwitch)
                {
                    if (((bool?)parameter.Value) == true)
                    {
                        builder.AppendFormat("-{0} ", parameter.Name);
                    }

                    continue;
                }

                string parameterValueString = parameter.Value.ToString();

                if (parameterValueString.Length == 0)
                {
                    continue;
                }

                ShowCommandParameterType parameterType = parameter.Parameter.ParameterType;

                if (parameterType.IsEnum || parameterType.IsString || (parameterType.IsArray && parameterType.ElementType.IsString))
                {
                    parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "\"", "\"");
                }
                else if (parameterType.IsScriptBlock)
                {
                    parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "{", "}");
                }
                else
                {
                    parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "(", ")");
                }

                builder.AppendFormat("-{0} {1} ", parameter.Name, parameterValueString);
            }

            return(builder.ToString().Trim());
        }
Exemple #2
0
        /// <summary>
        /// Creates a TextBox control for input type field.
        /// </summary>
        /// <param name="parameterViewModel">DataContext object.</param>
        /// <param name="rowNumber">Row number.</param>
        /// <returns>Return a TextBox control.</returns>
        private static TextBox CreateTextBoxControl(ParameterViewModel parameterViewModel, int rowNumber)
        {
            TextBox textBox = new TextBox();

            textBox.DataContext = parameterViewModel;
            textBox.SetValue(Grid.ColumnProperty, 1);
            textBox.SetValue(Grid.RowProperty, rowNumber);
            textBox.Margin = new Thickness(2);
            textBox.SetBinding(TextBox.ToolTipProperty, new Binding("ToolTip"));

            Binding valueBinding = new Binding("Value");

            valueBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            textBox.SetBinding(TextBox.TextProperty, valueBinding);

            //// Add AutomationProperties.AutomationId for UI Automation test.
            textBox.SetValue(
                System.Windows.Automation.AutomationProperties.AutomationIdProperty,
                string.Format(CultureInfo.CurrentCulture, "txt{0}", parameterViewModel.Name));

            textBox.SetValue(
                System.Windows.Automation.AutomationProperties.NameProperty,
                parameterViewModel.Name);

            ShowCommandParameterType parameterType = parameterViewModel.Parameter.ParameterType;

            if (parameterType.IsArray)
            {
                parameterType = parameterType.ElementType;
            }

            if (parameterType.IsScriptBlock || parameterType.ImplementsDictionary)
            {
                textBox.AcceptsReturn = true;
                textBox.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
                textBox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
                textBox.Loaded += new RoutedEventHandler(ParameterSetControl.MultiLineTextBox_Loaded);
            }

            return(textBox);
        }