Example #1
0
 public HDBSeries(TimeSeriesDatabase db, TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
     : base(db, sr)
 {
     string str = ConnectionStringUtility.GetToken(ConnectionString, "server", "");
     m_server = (HDBServer)Enum.Parse(typeof(HDBServer), str);
     m_sdi = ConnectionStringUtility.GetIntFromConnectionString(ConnectionString, "sdi");
 }
Example #2
0
 public CalculationSeries(TimeSeriesDatabase db,TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
     : base(db,sr)
 {
     m_parser = db.Parser;
     m_db = db;
     Init();
 }
Example #3
0
 public FormNewMeasurment( TimeSeriesDatabaseDataSet.sitecatalogDataTable siteCatalog)
 {
     InitializeComponent();
     buttonSave.Enabled = false;
     m_siteCatalog = siteCatalog;
     Prepare();
     this.Text="Input New Measurement";
 }
Example #4
0
 public override Series CreateScenario(TimeSeriesDatabaseDataSet.ScenarioRow scenario)
 {
     var s = new UrgwomSeries(ConnectionStringUtility.GetFileName(scenario.Path, m_db.DataSource),
         ConnectionStringUtility.GetToken(scenario.Path, "SheetName", ""),
         valueColumn);
     s.ScenarioName = scenario.Name;
     s.Name = "";
     s.Appearance.LegendText = scenario.Name;
     return s;
 }
Example #5
0
        public BasicMeasurement(TimeSeriesDatabase db, 
            TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
            : base(sr)
        {
            this.m_db = db;
            this.m_sr = sr;
            int id = Convert.ToInt32(ConnectionStringToken("id", "-1"));
            Console.WriteLine("ctor BasicMeasurement  id ="+id);
            var tbl = m_db.Hydrography.GetMeasurements();

            m_measurementRow = tbl.FindByid(id);
        }
Example #6
0
 public UrgwomSeries(TimeSeriesDatabase db, TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
     : base(db, sr)
 {
     TimeInterval = TimeSeries.TimeInterval.Daily;
     ExternalDataSource = true;
     ReadOnly = true;
     Provider = "UrgwomSeries";
     ScenarioName = "ScenarioName";
     xlsFilename = ConnectionStringUtility.GetFileName(ConnectionString, m_db.DataSource);
     sheetName = ConnectionStringToken("SheetName");
     dateColumn = ConnectionStringToken("DateColumn");
     valueColumn = ConnectionStringToken("ValueColumn");
 }
Example #7
0
        public override Series CreateScenario(TimeSeriesDatabaseDataSet.ScenarioRow scenario)
        {
            if (scenario.Name == ScenarioName)
            {
                return this;
            }
            else
            {
                string fn = ConnectionStringUtility.GetFileName(scenario.Path, m_db.DataSource);
                Logger.WriteLine("Reading series from " + fn);
                var sr = m_db.GetNewSeriesRow(false);
                sr.ItemArray = SeriesCatalogRow.ItemArray;

                sr.ConnectionString = ConnectionStringUtility.Modify(sr.ConnectionString, "FileName", fn);
                Series s = new HydrossSeries(m_db, sr);
                s.ReadOnly = true;
                s.ScenarioName = scenario.Name;
                return s;
            }
        }
Example #8
0
        /// <summary>
        /// Adds new site using template subset of a SeriesCatalog
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="template">copy this sereis catalog changing the siteid </param>
        /// <param name="SiteName"></param>
        /// <param name="SiteID"></param>
        /// <param name="elevation"></param>
        /// <param name="Lat"></param>
        /// <param name="Lon"></param>
        /// <param name="TimeZone"></param>
        /// <param name="Install"></param>
        public void AddSiteWithTemplate(PiscesFolder parent, 
            TimeSeriesDatabaseDataSet.SeriesCatalogDataTable template, string SiteName, string SiteID, 
            string state,double elevation, double Lat, double Lon, string TimeZone, string Install, string program)
        {
            var siteCatalog = GetSiteCatalog();
            var rows = siteCatalog.Select("siteid='"+SiteID+"'");
            if (rows.Length == 0)  // check if site exists before creating.
            {
                siteCatalog.AddsitecatalogRow(SiteID, SiteName, state, Lat, Lon, elevation, TimeZone, Install, "", "", 0, "", "", "", "", "","");
                Server.SaveTable(siteCatalog);
            }

            var siteFolder = GetOrCreateFolder(parent,SiteID);

            var instant = GetOrCreateFolder(parent,SiteID,"instant" );
            var daily = GetOrCreateFolder(parent,SiteID,"daily");
            var quality = GetOrCreateFolder(parent, SiteID, "quality");

            var sc = GetSeriesCatalog();
            var series_properties = GetSeriesProperties();

            foreach (var item in template)
            {
                int id = sc.NextID();
                int parentID = siteFolder.ID;

                if (item.TimeInterval == "Daily")
                    parentID = daily.ID;
                if (item.TimeInterval == "Irregular")
                    parentID = instant.ID;

                if (QualityParameters.Contains(item.Parameter.ToUpper()))
                {
                    parentID = quality.ID;
                }

                 var check = sc.Select("tablename = '"+item.TableName+"'");

                 if (check.Length > 0)
                 {
                     MessageBox.Show("Warning: skipping item that allready exists: "+item.TableName);
                 }
                 else
                 {
                     sc.AddSeriesCatalogRow(id, parentID, 0, id, item.iconname, item.Name, item.siteid, item.Units,
                             item.TimeInterval, item.Parameter, item.TableName, item.Provider, item.ConnectionString, item.Expression, item.Notes, item.enabled);
                     series_properties.AddseriespropertiesRow(series_properties.NextID(), id, "program", program);
                 }

                //series_properties.DuplicateProperties(series item.id, id);
               }
            series_properties.Save();
            Server.SaveTable(sc);
        }
Example #9
0
 //public PiscesFolder(TimeSeriesDatabase db)
 //{
 //    m_db = db;
 //    base.IsFolder = true;
 //}
 public PiscesFolder(TimeSeriesDatabase db, 
     TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
     : base(sr)
 {
     this.m_db = db;
 }
Example #10
0
        string m_path; //   //CHJ/YT//IR-MONTH/IRVZZBZD/

        #endregion Fields

        #region Constructors

        public UsaceSeries(TimeSeriesDatabase db, TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
            : base(db, sr)
        {
            m_path = ConnectionStringUtility.GetToken(sr.ConnectionString, "DssPath", "");
            ExternalDataSource = true;
        }
Example #11
0
 private void AddRows(TimeSeriesDatabaseDataSet.SeriesCatalogDataTable tbl)
 {
     foreach (var item in tbl)
     {
         var r = m_seriesCatalog.NewSeriesCatalogRow();
         r.ItemArray = item.ItemArray;
         m_seriesCatalog.AddSeriesCatalogRow(r);
     }
 }
Example #12
0
        private void MarkParentsAsPartOfFilter(int id, TimeSeriesDatabaseDataSet.SeriesCatalogDataTable tbl)
        {
            var row = tbl.FindByid(id);

            if( row == null)
            {
                Logger.WriteLine("Row does not exist.  It may have been deleted.");
                return;
            }
            row["keep"] = true;

            if (row.ParentID != row.id) // skip root level folders where parentid=id
            {
                MarkParentsAsPartOfFilter(row.ParentID, tbl);
            }
        }
Example #13
0
        /// <summary>
        /// Creates Scenario based on scenaroName/xyfile 
        /// </summary>
        public override Series CreateScenario(TimeSeriesDatabaseDataSet.ScenarioRow scenario)
        {
            string fn = ConnectionStringUtility.GetFileName(scenario.Path, m_db.DataSource);
            if (fn == m_xyFilename)
            {
                return this;
            }

            Logger.WriteLine("Reading series from: '" + fn + "'");
            if (!File.Exists(fn) || Path.GetExtension(fn).ToLower() != ".xy")
            {
                Logger.WriteLine("File not found (or not xy file) '" + fn + "'");
                Logger.WriteLine("Error: Can't create scenario");
                return new Series();
            }

            var rval = new ModsimSeries(fn, modsimName, timeSeriesName);
            rval.Name = this.Name;
            rval.Appearance.LegendText = scenario.Name + " " + Name;
            rval.ScenarioName = scenario.Name;
            rval.SiteID = this.SiteID;
            rval.TimeInterval = this.TimeInterval;
            return rval;
        }
Example #14
0
        public Series GetSeries(TimeSeriesDatabaseDataSet.SeriesCatalogRow sr)
        {
            if (db.Settings.ReadBoolean("VerboseLogging", false))
                Logger.EnableLogger();

            Series s = null;// = new Series(sr, db);
            int sdi = sr.id;
            try
            {

                if (sr.Provider.Trim() == "")
                    sr.Provider = "Series";

                // most common cases -- avoid reflection
                if (sr.Provider == "Series")
                {
                    s = new Series(db, sr);
                    //s.Table.TableName =
                    s.Icon = AssignIcon(sr.iconname);
                    s.TimeSeriesDatabase = this.db;
                    return s;
                }
                // most common cases -- avoid reflection
                if (sr.Provider == "CalculationSeries")
                {
                    s = new CalculationSeries(db, sr);
                    s.Icon = AssignIcon(sr.iconname);
                    s.TimeSeriesDatabase = this.db;
                    return s;
                }

                if (seriesTypeList == null)
                {
                    seriesTypeList = new List<Type>();
                    var asmList = AppDomain.CurrentDomain.GetAssemblies();

                    foreach (Assembly item in asmList)
                    {
                        if (item.FullName.IndexOf("Reclamation.") <0
                            && item.FullName.IndexOf("Pisces") <0
                            && item.FullName.IndexOf("HDB") <0 )
                            continue;

                        var types = item.GetTypes().Where(x => x.BaseType == typeof(Series));
                        seriesTypeList.AddRange(types);
                    }
                }

                for (int i = 0; i < seriesTypeList.Count; i++)
                {
                    Type t = seriesTypeList[i];
                    if (t.Name == sr.Provider)
                    {
                        Type[] parmFaster = new Type[] {  typeof(TimeSeriesDatabase), typeof(SeriesCatalogRow) };
                        var cInfoFaster = t.GetConstructor(parmFaster);

                        if (cInfoFaster != null)
                        {
                            object o = cInfoFaster.Invoke(new object[] {  db, sr });
                            if (o is Series)
                                s = o as Series;
                            else
                                throw new InvalidOperationException("Provider '" + sr.Provider + "' is not a Series");
                        }

                            else
                            {
                                throw new InvalidOperationException("Can't find constructor for '" + sr.Provider + "'");
                            }

                        break;
                    }

                }
            }
            catch(Exception excep)
            {
                if (excep.InnerException != null)
                {
                    Logger.WriteLine(excep.InnerException.Message);
                    throw excep.InnerException;
                }
                var msg = excep.Message + "\n" + sr.Provider;
                Logger.WriteLine(msg);
                throw new Exception(msg);
            }

            if (s == null)
            {
            //                Logger.WriteLine("No Class found for '"+sr.Provider +"'  ID= "+sr.id+" Name = "+sr.Name);
                s = new Series( db, sr);
            }
            s.Icon = AssignIcon(sr.iconname);
            s.TimeSeriesDatabase = this.db;
            return s;
        }
 private void SaveScenarioTable(TimeSeriesDatabaseDataSet.ScenarioDataTable scenarioTable)
 {
     if (m_referenceBuilder)
         scenarioTable.WriteLocalXml();
     else
         m_db.Server.SaveTable(scenarioTable);
 }
 private TimeSeriesDatabaseDataSet.ScenarioRow GetScenarioTableRowsByName(TimeSeriesDatabaseDataSet.ScenarioDataTable scenarioTable,
                                              string scenarioName)
 {
     var rows = scenarioTable.Select("name='" + scenarioName + "'");
     if (rows.Length > 1)
     {
         throw new DuplicateNameException("Duplicate rows found for name '" + scenarioName + "'");
     }
     return (TimeSeriesDatabaseDataSet.ScenarioRow) rows[0];
 }