Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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());
        }