Example #1
0
        public static BuildProcessParameters FromXml(string xml)
        {
            XDocument document = XDocument.Parse(xml);

//            foreach (var element in document.Elements())
//            {
//                var localName = element.Name.LocalName;
//            }


            XElement elDictionary    = document.Elements().Single(element => element.Name.LocalName == "Dictionary");
            XElement buildSettings   = elDictionary.Elements().Single(element => element.Name.LocalName == "BuildSettings");
            string   projectsToBuild = buildSettings.Attribute("ProjectsToBuild").Value;
            XElement elConfigFolder  = elDictionary.Elements().Single(element => element.Attributes().Any(attr => attr.Value == "ConfigurationFolderPath"));
            XElement elArgs          = elDictionary.Elements().SingleOrDefault(element => element.Attributes().Any(attr => attr.Value == "MSBuildArguments"));
            XElement elLogPerProj    = elDictionary.Elements().SingleOrDefault(element => element.Attributes().Any(attr => attr.Value == "LogFilePerProject"));
            XElement elVerbosity     = elDictionary.Elements().SingleOrDefault(element => element.Attributes().Any(attr => attr.Value == "Verbosity"));

            BuildProcessParameters result = new BuildProcessParameters();

            result.ConfigurationFolderPath = elConfigFolder.Value;
            result.MSBuildArguments        = elArgs != null ? elArgs.Value : string.Empty;
            result.LogFilePerProject       = elLogPerProj != null && elLogPerProj.Value.ToString().ToUpper() == "TRUE";
            if (elVerbosity != null)
            {
                result.Verbosity = (BuildVerbosity)Enum.Parse(typeof(BuildVerbosity), elVerbosity.Value, true);
            }

            return(result);
        }
Example #2
0
 public static BuildProcessParameters GetBuildProcessParameters(this IBuildDefinition definition)
 {
     return(BuildProcessParameters.FromXml(definition.ProcessParameters));
 }