private ParameterValue BuildParameterValueFromNode(XElement valueNode) { var parameterValue = new ParameterValue { Value = valueNode.GetAttributeValueOrThrow(ValueNodeName) }; foreach (XElement conditionNode in valueNode.Elements()) { string name = conditionNode.Name.LocalName; Dictionary<string, string> attributes = conditionNode.Attributes() .ToDictionary(x => x.Name.LocalName, x => x.Value); parameterValue.FilterConditions.Add(FilterCondition.Create(name, attributes)); } return parameterValue; }
private XNode BuildNodeFromValue(ParameterValue value) { var valueNode = new XElement(ValueNodeName); valueNode.SetAttributeValueOrThrow(ValueNodeName, value.Value); foreach (FilterCondition condition in value.FilterConditions) { var conditionNode = new XElement(condition.ConditionName); foreach (var property in condition.Properties) { conditionNode.SetAttributeValueOrThrow(property.Key, property.Value); } valueNode.Add(conditionNode); } return valueNode; }