コード例 #1
0
        internal override List <Dictionary <ColumnDefinition, object> > GetPlainData(object context)
        {
            var result = new List <Dictionary <ColumnDefinition, object> >();

            var            document       = GetSourceDocument(context);
            XPathNavigator currentElement = null;
            var            navigator      = document.CreateNavigator();
            var            iterator       = navigator.Select(XPathExpression.Compile(PathToItems));

            currentElement = iterator.OfType <XPathNavigator>().FirstOrDefault();

            if (currentElement != null)
            {
                var historyElements =
                    currentElement.Select(ItemTag)
                    .Cast <XPathNavigator>().ToList();

                foreach (XPathNavigator historyElementNew in historyElements)
                {
                    XmlElement xmlElement = historyElementNew.UnderlyingObject as XmlElement;

                    Dictionary <ColumnDefinition, object> row = new Dictionary <ColumnDefinition, object>();

                    foreach (XmlFileTableSourceItem column in this._columns)
                    {
                        var elData = xmlElement[column.Tag];

                        if (elData != null)
                        {
                            var value = ParameterValue.GetValue(elData.InnerXml, false, column.Type);

                            if (value == DBNull.Value)
                            {
                                value = null;
                            }

                            row.Add(column, value);
                        }
                    }
                    result.Add(row);
                }
            }
            return(result);
        }