Exemple #1
0
 /// <summary>Generic constructor.</summary>
 /// <param name="File"></param>
 /// <param name="OutputItems"></param>
 internal DataReader(DataReaderSettings ReaderSettings)
 {
     this._settings = ReaderSettings;
 }
Exemple #2
0
 /// <summary>Generic constructor.</summary>
 /// <param name="File"></param>
 /// <param name="OutputItems"></param>
 internal DataReader(DataReaderSettings ReaderSettings)
 {
     this._settings = ReaderSettings;
 }
Exemple #3
0
 /// <summary>Base constructor plus filelocation</summary>
 internal PythonReader(DataReaderSettings ReaderSettings, String FileLocation)
     : base(ReaderSettings)
 {
     this._fileloc = new FileInfo(FileLocation);
     this._items   = null;
 }
        internal static void LoadDataReaders()
        {
            FileInfo fi_dataitems = new FileInfo(Config.GetSetting("filelocation_xmlsettings") + "DataReaders.xml");
            if (!fi_dataitems.Exists)
                throw new FileNotFoundException("DataReader.xml not found!");
            Exception xmlex = null;
            List<DataReaderSettings> readers = new List<DataReaderSettings>();
            using (XmlReader xr = new XmlTextReader(fi_dataitems.OpenText()))
            {
                try
                {
                    xr.ReadStartElement();
                    while (xr.Read())
                    {
                        if (xr.NodeType == XmlNodeType.Element && xr.Name == "DataReader")
                        {
                            DataReaderSettings drs = null;
                            String temp = xr.GetAttribute("name");
                            if (String.IsNullOrEmpty(temp))
                                throw new FormatException("DataReader name attribute not found.");
                            drs = new DataReaderSettings(temp);
                            String filename = xr.GetAttribute("filename");
                            if (String.IsNullOrEmpty(filename))
                                throw new FormatException("DataReader filename attribute not found.");
                            temp = xr.GetAttribute("dirsetting");
                            if (String.IsNullOrEmpty(temp)) { temp = "./"; }
                            else
                            {
                                temp = Config.GetSetting(temp);
                                if (String.IsNullOrEmpty(temp)) { temp = "./"; }
                            }
                            drs.FileLocation = new FileInfo(temp + filename);
                            temp = xr.GetAttribute("dataitem");
                            if (String.IsNullOrEmpty(temp))
                                throw new FormatException("DataReader dataitem attribute not found.");
                            drs.DataType = null;
                            for (int i = 0; i < ItemSettings.Length; ++i)
                            {
                                if (ItemSettings[i].Name.ToLowerInvariant() == temp.ToLowerInvariant())
                                {
                                    drs.DataType = ItemSettings[i];
                                }
                            }
                            if (ReferenceEquals(drs.DataType,null))
                                throw new FormatException("DataReader dataitem value " + temp + " not found in loaded DataItems.");
                            Int32 startline = 0;
                            temp = xr.GetAttribute("startline");
                            Int32.TryParse(xr.GetAttribute("startline"), out startline);
                            drs.StartLine = startline;
                            readers.Add(drs);
                        }
                    }
                }
                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;

            }
            ReaderSettings = readers.ToArray();
        }
Exemple #5
0
        internal static void LoadDataReaders()
        {
            FileInfo fi_dataitems = new FileInfo(Config.GetSetting("filelocation_xmlsettings") + "DataReaders.xml");

            if (!fi_dataitems.Exists)
            {
                throw new FileNotFoundException("DataReader.xml not found!");
            }
            Exception xmlex = null;
            List <DataReaderSettings> readers = new List <DataReaderSettings>();

            using (XmlReader xr = new XmlTextReader(fi_dataitems.OpenText()))
            {
                try
                {
                    xr.ReadStartElement();
                    while (xr.Read())
                    {
                        if (xr.NodeType == XmlNodeType.Element && xr.Name == "DataReader")
                        {
                            DataReaderSettings drs  = null;
                            String             temp = xr.GetAttribute("name");
                            if (String.IsNullOrEmpty(temp))
                            {
                                throw new FormatException("DataReader name attribute not found.");
                            }
                            drs = new DataReaderSettings(temp);
                            String filename = xr.GetAttribute("filename");
                            if (String.IsNullOrEmpty(filename))
                            {
                                throw new FormatException("DataReader filename attribute not found.");
                            }
                            temp = xr.GetAttribute("dirsetting");
                            if (String.IsNullOrEmpty(temp))
                            {
                                temp = "./";
                            }
                            else
                            {
                                temp = Config.GetSetting(temp);
                                if (String.IsNullOrEmpty(temp))
                                {
                                    temp = "./";
                                }
                            }
                            drs.FileLocation = new FileInfo(temp + filename);
                            temp             = xr.GetAttribute("dataitem");
                            if (String.IsNullOrEmpty(temp))
                            {
                                throw new FormatException("DataReader dataitem attribute not found.");
                            }
                            drs.DataType = null;
                            for (int i = 0; i < ItemSettings.Length; ++i)
                            {
                                if (ItemSettings[i].Name.ToLowerInvariant() == temp.ToLowerInvariant())
                                {
                                    drs.DataType = ItemSettings[i];
                                }
                            }
                            if (ReferenceEquals(drs.DataType, null))
                            {
                                throw new FormatException("DataReader dataitem value " + temp + " not found in loaded DataItems.");
                            }
                            Int32 startline = 0;
                            temp = xr.GetAttribute("startline");
                            Int32.TryParse(xr.GetAttribute("startline"), out startline);
                            drs.StartLine = startline;
                            readers.Add(drs);
                        }
                    }
                }
                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;
                }
            }
            ReaderSettings = readers.ToArray();
        }