public void ReadConfiguration(XPathNavigator nav) { name = Helpers.GetRequiredNonEmptyAttribute(nav, "name"); target = Helpers.ConvertEnum <FeatureTarget> (Helpers.GetRequiredNonEmptyAttribute(nav, "target"), "target"); fileName = Helpers.GetOptionalAttribute(nav, "fileName"); if (String.IsNullOrEmpty(fileName)) { fileName = name; } sections = new Section(); Helpers.BuildSectionTree(nav.Select("./section[string-length (@name) > 0]"), sections); }
public Section(XPathNavigator nav) { if (nav != null) { name = Helpers.GetRequiredNonEmptyAttribute(nav, "name"); string val = Helpers.GetOptionalAttribute(nav, "attachPoint"); if (!String.IsNullOrEmpty(val)) { attachPoint = true; } val = Helpers.GetOptionalAttribute(nav, "defaultBlockName"); if (!String.IsNullOrEmpty(val)) { defaultBlockName = val; } } }
public FeatureAction(XPathNavigator nav) { string val = Helpers.GetRequiredNonEmptyAttribute(nav, "type"); type = Helpers.ConvertEnum <ActionType> (val, "type"); val = Helpers.GetRequiredNonEmptyAttribute(nav, "when"); when = Helpers.ConvertEnum <ActionWhen> (val, "when"); XPathNodeIterator iter; StringBuilder sb = new StringBuilder(); switch (type) { case ActionType.Message: case ActionType.ShellScript: iter = nav.Select("./text()"); while (iter.MoveNext()) { sb.Append(iter.Current.Value); } if (type == ActionType.Message) { message = sb.ToString(); } else { script = sb.ToString(); } break; case ActionType.Exec: command = Helpers.GetRequiredNonEmptyAttribute(nav, "command"); commandArguments = Helpers.GetOptionalAttribute(nav, "commndArguments"); break; } }