private string GetParameterActionDescription(params ObjectProperty[] additionalParameters) { var items = new List <string>(); foreach (var prop in modifiedSensorParameters .Where(c => !additionalParameters.Any(p => p.ToString() == c.Item1)) //Exclude any additionalParameters; we'll print them specially below .OrderBy(c => c.Item1 != nameof(NewObjectParameters.Name))) //Ensure property "Name" comes first (if applicable) { var val = prop.Item2.IsIEnumerable() ? string.Join(", ", prop.Item2.ToIEnumerable()) : prop.Item2?.ToString(); items.Add($"{prop.Item1} = '{val}'"); } foreach (var param in additionalParameters) { var name = ObjectPropertyParser.GetObjectPropertyName(param); var val = ParametersInternal.GetCustomParameterInternal(name)?.ToString(); if (val?.Contains("\n") == true) { items.Add($"{param} =\n\n{val}\n\n"); } else { items.Add($"{param} = '{val}'"); } } return(MyInvocation.MyCommand.Name + ": " + string.Join(", ", items)); }
/// <summary> /// Adds a parameter. /// </summary> /// <param name="parameter">The parameter.</param> public virtual void AddParameter(Parameter parameter) { ParametersInternal.Add(parameter); }