示例#1
0
 internal String[] ListContents(DataItemSettings dsi)
 {
     //counterpart to listlabels
     List<String> retval = new List<String>(dsi.LineItemLabels.Count);
     Int32 countstr = 0, countint = 0;
     for (int i = 0; i < dsi.LineItemLabels.Count; ++i)
     {
         if(dsi.LineItemLabels[i] != null)
         {
             if(dsi.LineItemTypes[i] == LineItemTypes.Int64)
             {
                 retval.Add(this._content[countint].ToString());
                 ++countint;
             }
             else if(dsi.LineItemTypes[i] == LineItemTypes.String && dsi.LineItemLabels[i] != "name")
             {
                 retval.Add(this._strings[countstr]);
                 ++countstr;
             }
         }
     }
     return retval.ToArray();
 }
示例#2
0
        internal String[] ListContents(DataItemSettings dsi)
        {//counterpart to listlabels
            List <String> retval = new List <String>(dsi.LineItemLabels.Count);
            Int32         countstr = 0, countint = 0;

            for (int i = 0; i < dsi.LineItemLabels.Count; ++i)
            {
                if (dsi.LineItemLabels[i] != null)
                {
                    if (dsi.LineItemTypes[i] == LineItemTypes.Int64)
                    {
                        retval.Add(this._content[countint].ToString());
                        ++countint;
                    }
                    else if (dsi.LineItemTypes[i] == LineItemTypes.String && dsi.LineItemLabels[i] != "name")
                    {
                        retval.Add(this._strings[countstr]);
                        ++countstr;
                    }
                }
            }
            return(retval.ToArray());
        }
示例#3
0
        internal static void LoadDataItems()
        {
            FileInfo fi_dataitems = new FileInfo(Config.GetSetting("filelocation_xmlsettings") + "dataitems.xml");
            if (!fi_dataitems.Exists)
                throw new FileNotFoundException("DataItems.xml not found!");
            Exception xmlex = null;
            DataItemSettings dis = null;
            List<DataItemSettings> dataitems = new List<DataItemSettings>();
            using (XmlReader xr = new XmlTextReader(fi_dataitems.OpenText()))
            {
                try
                {
                    xr.ReadStartElement();
                    while (xr.Read())
                    {
                        if (xr.NodeType == XmlNodeType.Element)
                        {
                            if (xr.Name == "DataItem" && xr.NodeType != XmlNodeType.EndElement)
                            {
                                String name = xr.GetAttribute("name");
                                if (String.IsNullOrEmpty(name))
                                    throw new FormatException("DataItem name not found.");
                                dis = new DataItemSettings(name);
                                String prefix = xr.GetAttribute("prefix");
                                if (prefix == null) { prefix = String.Empty; }
                                dis.Prefix = prefix;
                                while (xr.Name != "Processing" && xr.Read()) ;
                                if (xr.Name == "Processing" && xr.NodeType != XmlNodeType.EndElement)
                                {
                                    while (xr.Read())
                                    {
                                        if (xr.NodeType == XmlNodeType.Element || xr.IsEmptyElement)
                                        {
                                            if (xr.Name == "line")
                                            {
                                                if (xr.NodeType == XmlNodeType.EndElement || xr.IsEmptyElement)
                                                {//add a lineend type for <line/> or </line>
                                                    dis.LineItemTypes.Add(LineItemTypes.LineEnd);
                                                    dis.LineItemLabels.Add(null);
                                                }
                                            }
                                            else if (xr.Name == "item")
                                            {
                                                if (xr.NodeType != XmlNodeType.EndElement)
                                                {
                                                    String type = xr.GetAttribute("type");
                                                    switch (type)
                                                    {
                                                        case "space":
                                                            dis.LineItemTypes.Add(LineItemTypes.Space);
                                                            dis.LineItemLabels.Add(null);
                                                            break;
                                                        case "string":
                                                            dis.LineItemTypes.Add(LineItemTypes.String);
                                                            type = xr.GetAttribute("id");
                                                            if(type == null)
                                                                throw new FormatException("ID missing in data item in DataItems->Line->Type");
                                                            dis.LineItemLabels.Add(type);
                                                            break;
                                                        case "number":
                                                            dis.LineItemTypes.Add(LineItemTypes.Int64);
                                                            type = xr.GetAttribute("id");
                                                            if (type == null)
                                                                throw new FormatException("ID missing in data item in DataItems->Line->Type");
                                                            dis.LineItemLabels.Add(type);
                                                            break;
                                                        default:
                                                            throw new FormatException("Unknown type encountered in DataItems->Line->Type");
                                                    }
                                                }
                                            }
                                        }
                                        else if (xr.Name == "DataItem" && xr.NodeType == XmlNodeType.EndElement)
                                        {
                                            dataitems.Add(dis);
                                            break;
                                        }
                                    }
                                }
                            }
                        }

                    }
                }
                catch (Exception ex) { xmlex = ex; }
                finally
                {
                    xr.Close();
                }
                //rethrow exception if it exists after we've ensured the xml file is closed
                if (!ReferenceEquals(xmlex, null))
                    throw xmlex;

            }
            ItemSettings = dataitems.ToArray();
        }
示例#4
0
        internal static void LoadDataItems()
        {
            FileInfo fi_dataitems = new FileInfo(Config.GetSetting("filelocation_xmlsettings") + "dataitems.xml");

            if (!fi_dataitems.Exists)
            {
                throw new FileNotFoundException("DataItems.xml not found!");
            }
            Exception               xmlex     = null;
            DataItemSettings        dis       = null;
            List <DataItemSettings> dataitems = new List <DataItemSettings>();

            using (XmlReader xr = new XmlTextReader(fi_dataitems.OpenText()))
            {
                try
                {
                    xr.ReadStartElement();
                    while (xr.Read())
                    {
                        if (xr.NodeType == XmlNodeType.Element)
                        {
                            if (xr.Name == "DataItem" && xr.NodeType != XmlNodeType.EndElement)
                            {
                                String name = xr.GetAttribute("name");
                                if (String.IsNullOrEmpty(name))
                                {
                                    throw new FormatException("DataItem name not found.");
                                }
                                dis = new DataItemSettings(name);
                                String prefix = xr.GetAttribute("prefix");
                                if (prefix == null)
                                {
                                    prefix = String.Empty;
                                }
                                dis.Prefix = prefix;
                                while (xr.Name != "Processing" && xr.Read())
                                {
                                    ;
                                }
                                if (xr.Name == "Processing" && xr.NodeType != XmlNodeType.EndElement)
                                {
                                    while (xr.Read())
                                    {
                                        if (xr.NodeType == XmlNodeType.Element || xr.IsEmptyElement)
                                        {
                                            if (xr.Name == "line")
                                            {
                                                if (xr.NodeType == XmlNodeType.EndElement || xr.IsEmptyElement)
                                                {//add a lineend type for <line/> or </line>
                                                    dis.LineItemTypes.Add(LineItemTypes.LineEnd);
                                                    dis.LineItemLabels.Add(null);
                                                }
                                            }
                                            else if (xr.Name == "item")
                                            {
                                                if (xr.NodeType != XmlNodeType.EndElement)
                                                {
                                                    String type = xr.GetAttribute("type");
                                                    switch (type)
                                                    {
                                                    case "space":
                                                        dis.LineItemTypes.Add(LineItemTypes.Space);
                                                        dis.LineItemLabels.Add(null);
                                                        break;

                                                    case "string":
                                                        dis.LineItemTypes.Add(LineItemTypes.String);
                                                        type = xr.GetAttribute("id");
                                                        if (type == null)
                                                        {
                                                            throw new FormatException("ID missing in data item in DataItems->Line->Type");
                                                        }
                                                        dis.LineItemLabels.Add(type);
                                                        break;

                                                    case "number":
                                                        dis.LineItemTypes.Add(LineItemTypes.Int64);
                                                        type = xr.GetAttribute("id");
                                                        if (type == null)
                                                        {
                                                            throw new FormatException("ID missing in data item in DataItems->Line->Type");
                                                        }
                                                        dis.LineItemLabels.Add(type);
                                                        break;

                                                    default:
                                                        throw new FormatException("Unknown type encountered in DataItems->Line->Type");
                                                    }
                                                }
                                            }
                                        }
                                        else if (xr.Name == "DataItem" && xr.NodeType == XmlNodeType.EndElement)
                                        {
                                            dataitems.Add(dis);
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex) { xmlex = ex; }
                finally
                {
                    xr.Close();
                }
                //rethrow exception if it exists after we've ensured the xml file is closed
                if (!ReferenceEquals(xmlex, null))
                {
                    throw xmlex;
                }
            }
            ItemSettings = dataitems.ToArray();
        }