public static void CheckLegacyConditionalFormat <T>(TypedValue expectedValue, string legacyXml) where T : IComparable { XmlDocument doc = new XmlDocument(); doc.LoadXml(legacyXml); TypedValue actualValue = TypedValueHelper.ReadTypedValueXml(doc.DocumentElement, "whatever"); T expectedData = (T)expectedValue.Value; T actualData = (T)actualValue.Value; Assert.AreEqual(expectedValue.Type.GetType(), actualValue.Type.GetType(), "Check type"); Assert.IsTrue(expectedData.CompareTo(actualData) == 0, "Check Data"); Assert.AreEqual(expectedValue.SourceEntityTypeId, actualValue.SourceEntityTypeId, "Check SourceEntityTypeId"); }
/// <summary> /// Reconstructs a bar formatting rule from the specified XML image. /// </summary> /// <param name="node">The node containing the bar formatting rule XML.</param> /// <returns>The bar formatting rule.</returns> private static BarFormattingRule ReadBarFormattingRuleXml(XmlNode node) { BarFormattingRule formattingRule = new BarFormattingRule(); if (XmlHelper.EvaluateSingleNode(node, "barFormattingRule")) { XmlNode barFormattingRuleNode = XmlHelper.SelectSingleNode(node, "barFormattingRule"); if (barFormattingRuleNode != null) { formattingRule.Color = ColorInfoHelper.ReadColorInfoXml(barFormattingRuleNode, "color"); formattingRule.Minimum = TypedValueHelper.ReadTypedValueXml(barFormattingRuleNode, "minimum"); formattingRule.Maximum = TypedValueHelper.ReadTypedValueXml(barFormattingRuleNode, "maximum"); } } return(formattingRule); }
/// <summary> /// Reconstructs the condition object from the specified XML node and XML element name. /// </summary> /// <param name="node">The XML node containing the condition XML.</param> /// <param name="elementName">The name of the XML element containing the condition data.</param> /// <returns>The condition object.</returns> public static Condition ReadConditionXml(XmlNode node, string elementName) { if (node == null) { throw new ArgumentNullException("node"); } if (string.IsNullOrEmpty(elementName)) { throw new ArgumentNullException("elementName"); } var condition = new Condition(); if (XmlHelper.EvaluateSingleNode(node, elementName)) { XmlNode conditionNode = XmlHelper.SelectSingleNode(node, elementName); condition.Operator = (ConditionType)XmlHelper.ReadElementEnum(conditionNode, "operator", typeof(ConditionType), ConditionType.Unspecified); condition.ColumnName = XmlHelper.ReadElementString(conditionNode, "columnName", string.Empty); //database type condition.ColumnType = DatabaseType.UnknownType; if (XmlHelper.EvaluateSingleNode(conditionNode, "type")) { XmlNode typeNode = XmlHelper.SelectSingleNode(conditionNode, "type"); condition.ColumnType = DatabaseType.FromXml(typeNode); } if (DatabaseTypeHelper.IsTypeRelationshipField(condition.ColumnType)) { XmlNode argumentsNode = XmlHelper.SelectSingleNode(conditionNode, "arguments"); foreach (XmlNode argumentNode in argumentsNode.ChildNodes) { TypedValue argument = TypedValueHelper.FromXml(argumentNode); if (argument != null) { condition.Arguments.Add(argument); if (argument.Value != null) { string strArgumentValue = argument.Value.ToString(); long longArgumentValue; if (long.TryParse(strArgumentValue, out longArgumentValue)) { Resource resource = Model.Entity.Get <Resource>(new EntityRef(longArgumentValue)); ConvertArgumentValue(strArgumentValue, resource == null ? "Missing" : resource.Name); } } } } } else { XmlNodeList argumentNodes = XmlHelper.SelectNodes(conditionNode, "arguments"); foreach (TypedValue argument in argumentNodes.Cast <XmlNode>().Select(argumentNode => TypedValueHelper.ReadTypedValueXml(argumentNode, "argument")).Where(argument => argument != null)) { condition.Arguments.Add(argument); } } } return(condition); }