示例#1
0
        /// <summary>
        /// Find calculations that depend on this series (tableName)
        /// These calculations will have the series as input
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="timeInterval"></param>
        /// <returns></returns>
        List <CalculationSeries> GetDependentCalculations(string tableName, TimeSeries.TimeInterval timeInterval)
        {
            // cache with s_instantDependencies speed up from 174 seconds to 28 seconds (agrimet test)
            if (timeInterval == TimeSeries.TimeInterval.Irregular)
            {
                if (m_instantDependencies == null)
                {
                    var rawCalcList = m_db.Factory.GetCalculationSeries(timeInterval, "", "");
                    Logger.WriteLine("Info: GetDependentCalculations, found " + rawCalcList.Count
                                     + " calculation series");
                    m_instantDependencies = new TimeSeriesDependency(rawCalcList);
                }
                return(m_instantDependencies.LookupCalculations(tableName, timeInterval));
            }
            else if (timeInterval == TimeSeries.TimeInterval.Daily)
            {
                if (m_dailyDependencies == null)
                {
                    var rawCalcList = m_db.Factory.GetCalculationSeries(timeInterval, "", "");
                    m_dailyDependencies = new TimeSeriesDependency(rawCalcList);
                }
                return(m_dailyDependencies.LookupCalculations(tableName, timeInterval));
            }

            throw new NotImplementedException("Error: GetDependentCalculations does not support " + timeInterval);
        }
示例#2
0
        public CalculationSeries[] GetDependentCalculations(string siteID, string pcode)
        {
            TimeSeriesDependency td = new TimeSeriesDependency(m_dependencyList);
            TimeSeriesName       tn = new TimeSeriesName(siteID + "_" + pcode, m_interval);
            var list = td.LookupCalculations(tn.GetTableName(), m_interval).ToArray();

            var cList = new List <CalculationSeries>();

            foreach (var item in list)
            {
                if (item is CalculationSeries)
                {
                    cList.Add(item as CalculationSeries);
                }
            }
            return(cList.ToArray());
        }