Ejemplo n.º 1
0
        public static HydrometDataCache Cache;  // in-memory cache used for forecasting

        // public bool FromCache = false;


        private void ReadMpollFromHydromet(DateTime t1, DateTime t2)
        {
            string key        = m_cbtt + " " + m_pcode;
            int    tableIndex = -1;

            if (Cache != null &&
                (tableIndex = Cache.TableIndex(key, TimeSeries.TimeInterval.Monthly, t1, t2)) >= 0)
            {
                int idx = Cache.DataSet.Tables[tableIndex].Columns.IndexOf(key);
                if (idx < 0)
                {
                    throw new Exception("oops");
                }
                //Console.WriteLine("Cache hit for: " + key);
                ReadFromTable(Cache.DataSet.Tables[tableIndex], idx, idx + 1, t1, t2);
                if (ConvertToAcreFeet)
                {
                    ConvertFromThousandAcreFeetToAcreFeet(this);
                }
                //   FromCache = true;
            }
            else
            {
                var tbl = HydrometDataUtility.MPollTable(this.server, key, t1, t2);
                ReadFromTable(tbl, 1, 2, t1, t2);
                if (ConvertToAcreFeet)
                {
                    ConvertFromThousandAcreFeetToAcreFeet(this);
                }
            }
        }
Ejemplo n.º 2
0
        public void Add(string[] cbttPcodeList, DateTime t1, DateTime t2,
                        HydrometHost svr = HydrometHost.PNLinux, TimeInterval interval = TimeInterval.Monthly, int back = 0)
        {
            // make cbttPcodeList unique.
            List <string> lst = new List <string>(cbttPcodeList);

            cbttPcodeList = lst.Distinct().ToArray();

            //minT = t1;
            //maxT = t2;
            m_interval = interval;

            string query = String.Join(",", cbttPcodeList);

            if (query.Length > 0)
            {
                DataTable m_table = new DataTable();
                if (interval == TimeInterval.Monthly && svr != HydrometHost.GreatPlains)
                {
                    m_table = HydrometDataUtility.MPollTable(svr, query, t1, t2);
                }
                else if (interval == TimeInterval.Daily)
                {
                    m_table = HydrometDataUtility.ArchiveTable(svr, query, t1, t2, back);
                }
                else if (interval == TimeInterval.Irregular)
                {
                    m_table = HydrometDataUtility.DayFilesTable(svr, query, t1, t2, back);
                }
                m_table.ExtendedProperties.Add("interval", interval.ToString());
                s_counter++;
                m_table.TableName = svr.ToString() + "_" + interval.ToString() + s_counter;
                m_dataSet.Tables.Add(m_table);
            }
        }