private List <ParameterBase> GetBuildParameters(XDocument xDoc) { // Construct the build parameters var buildParameters = new List <ParameterBase>(); var parametersNodes = xDoc.Descendants("action").Elements("parameterDefinition"); var supportedTypes = Enum.GetNames(typeof(BuildParameterType)); foreach (var parameterNode in parametersNodes) { var type = (string)parameterNode.Element("type"); if (!supportedTypes.Contains(type)) { continue; } switch ((BuildParameterType)Enum.Parse(typeof(BuildParameterType), type)) { case BuildParameterType.BooleanParameterDefinition: var booleanBuildParamter = new BuildParameters.BooleanParameter(parameterNode); buildParameters.Add(booleanBuildParamter.ToParameterBase()); break; case BuildParameterType.ChoiceParameterDefinition: var choiceBuildParameter = new ChoiceParameter(parameterNode); buildParameters.Add(choiceBuildParameter.ToParameterBase()); break; case BuildParameterType.StringParameterDefinition: var stringBuildParameter = new StringParameter(parameterNode); buildParameters.Add(stringBuildParameter.ToParameterBase()); break; } } return(buildParameters); }