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(); }
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()); }
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(); }
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(); }