private void SetXmlNodeValueWithSubValues(XmlNode xmlNode, DatasetXmlNode datasetXmlNode, DatasetInstanceSubValue[] subItemValues) { var subvalue = subItemValues?.SingleOrDefault(siv => siv.DatasetElementSub.Id == datasetXmlNode.DatasetElementSub.Id); if (subvalue != null) { var value = subvalue.InstanceValue; if (value.IndexOf("=") > -1) { value = value.Substring(0, value.IndexOf("=")); } xmlNode.InnerText = value; } else { if (!String.IsNullOrWhiteSpace(datasetXmlNode.DatasetElementSub.DefaultValue)) { xmlNode.InnerText = datasetXmlNode.DatasetElementSub.DefaultValue; } else { xmlNode.InnerText = string.Empty; } } }
private XmlNode CreateXmlNodeWithAttributes(DatasetXmlNode datasetXmlNode) { XmlNode xmlNode = _xmlDocument.CreateElement(datasetXmlNode.NodeName, ""); if (datasetXmlNode.NodeAttributes.Count == 0) { return(xmlNode); } foreach (DatasetXmlAttribute datasetXmlAttribute in datasetXmlNode.NodeAttributes) { XmlAttribute xmlAttribute = _xmlDocument.CreateAttribute(datasetXmlAttribute.AttributeName); if (datasetXmlAttribute.DatasetElement != null) { var value = _e2bInstance.GetInstanceValue(datasetXmlAttribute.DatasetElement.ElementName); if (value.IndexOf("=") > -1) { value = value.Substring(0, value.IndexOf("=")); } xmlAttribute.InnerText = value; } else { xmlAttribute.InnerText = datasetXmlAttribute.AttributeValue; } xmlNode.Attributes.Append(xmlAttribute); } return(xmlNode); }
private void SetXmlNodeValueWithDatasetElement(XmlNode xmlNode, DatasetXmlNode datasetXmlNode) { var value = _e2bInstance.GetInstanceValue(datasetXmlNode.DatasetElement.ElementName); if (value?.IndexOf("=") > -1) { value = value.Substring(0, value.IndexOf("=")); } xmlNode.InnerText = value; }
private async Task <XmlNode[]> PrepareXmlNodeAsync(DatasetXmlNode datasetXmlNode, DatasetInstanceSubValue[] subItemValues = null) { if (datasetXmlNode == null) { throw new ArgumentNullException(nameof(datasetXmlNode)); } List <XmlNode> xmlNodes = new List <XmlNode>(); switch (datasetXmlNode.NodeType) { case NodeType.RootNode: case NodeType.StandardNode: var xmlStandardNode = CreateXmlNodeWithAttributes(datasetXmlNode); if (datasetXmlNode.DatasetElement != null) { SetXmlNodeValueWithDatasetElement(xmlStandardNode, datasetXmlNode); } if (datasetXmlNode.DatasetElementSub != null) { SetXmlNodeValueWithSubValues(xmlStandardNode, datasetXmlNode, subItemValues); } await ProcessNodeStructureChildrenAsync(datasetXmlNode.Id, xmlStandardNode, subItemValues); xmlNodes.Add(xmlStandardNode); break; case NodeType.RepeatingNode: if (datasetXmlNode.DatasetElement != null) { var sourceContexts = _e2bInstance.GetInstanceSubValuesContext(datasetXmlNode.DatasetElement.ElementName); foreach (Guid sourceContext in sourceContexts) { var xmlRepeatingNode = CreateXmlNodeWithAttributes(datasetXmlNode); var values = _e2bInstance.GetInstanceSubValues(datasetXmlNode.DatasetElement.ElementName, sourceContext); await ProcessNodeStructureChildrenAsync(datasetXmlNode.Id, xmlRepeatingNode, values); xmlNodes.Add(xmlRepeatingNode); } } break; default: break; } return(xmlNodes.ToArray()); }