Exemple #1
0
 public TimeSeriesImporter(TimeSeriesDatabase db,
                           DatabaseSaveOptions saveOption = DatabaseSaveOptions.UpdateExisting)
 {
     m_db = db;
     //m_routing = routing;
     m_saveOption = saveOption;
 }
Exemple #2
0
 public FileImporter(Reclamation.TimeSeries.TimeSeriesDatabase db, 
     DatabaseSaveOptions saveOption= DatabaseSaveOptions.UpdateExisting)
 {
     m_saveOption = saveOption;
     m_db = db;
     if(  ConfigurationManager.AppSettings["ValidLoggerNetPcodes"] != null)
     validPcodes = ConfigurationManager.AppSettings["ValidLoggerNetPcodes"].Split(',');
     if (ConfigurationManager.AppSettings["ValidLoggerNetSites"] != null)
     validSites = ConfigurationManager.AppSettings["ValidLoggerNetSites"].Replace(" ", "").Replace("\r\n", "").Split(',');
 }
Exemple #3
0
 public FileImporter(Reclamation.TimeSeries.TimeSeriesDatabase db,
                     DatabaseSaveOptions saveOption = DatabaseSaveOptions.UpdateExisting)
 {
     m_saveOption = saveOption;
     m_db         = db;
     if (ConfigurationManager.AppSettings["ValidLoggerNetPcodes"] != null)
     {
         validPcodes = ConfigurationManager.AppSettings["ValidLoggerNetPcodes"].Split(',');
     }
     if (ConfigurationManager.AppSettings["ValidLoggerNetSites"] != null)
     {
         validSites = ConfigurationManager.AppSettings["ValidLoggerNetSites"].Replace(" ", "").Replace("\r\n", "").Split(',');
     }
 }
Exemple #4
0
        public JsonDatabase(string filePath, DatabaseSaveOptions options)
        {
            _options  = options;
            _filePath = filePath;

            if (File.Exists(_filePath))
            {
                string json = File.ReadAllText(_filePath);
                _data = JsonConvert.DeserializeObject <Dictionary <string, JToken> >(json);
            }
            else
            {
                _data = new Dictionary <string, JToken>();
                if (_options == DatabaseSaveOptions.Automatic)
                {
                    Save();
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Imports DataTable to the Database
        /// </summary>
        private int ImportTimeSeriesTable(DataTable table, SeriesCatalogRow sr,
             DatabaseSaveOptions option)
        {
            // Performance perf = new Performance();
            table.Columns[0].ColumnName = "datetime";
            table.Columns[1].ColumnName = "value";
            // table.Columns[2].ColumnName = "flag";
            table.TableName = sr.TableName;

            if (table.Columns.Count == 2)
            {
                table.Columns.Add("flag");
                table.Columns["flag"].DefaultValue = "";
            }

            if (m_tableNames.Count == 0) // table name cache speed up of 17%
            {
                m_tableNames.AddRange(m_server.TableNames());
            }

            if( m_tableNames.IndexOf(table.TableName) <0 )
            {
                CreateSeriesTable(sr.TableName, true);
                m_tableNames.Add(sr.TableName);
            }

            int count = 0;

            if( option == DatabaseSaveOptions.Upsert)
            {
                try
                {
                    count = m_server.InsertTable(table);
                }catch (Exception eprimary)
                {
                    Logger.WriteLine("Error: insert did not work.. deleting existing data first "+eprimary.Message);
                    DeleteExistingData(table);
                    count = m_server.InsertTable(table);
                }
            }
            else
            if (option == DatabaseSaveOptions.UpdateExisting)
            {
                //count = InsertOrUpdate(table, si.FileIndex);
                DeleteExistingData(table);
                count = m_server.InsertTable(table);
            }
            else
                if (option == DatabaseSaveOptions.DeleteAllExisting)
                {
                    Truncate(sr.id);
                    count = m_server.InsertTable(table);
                }
                else if (option == DatabaseSaveOptions.Insert)
                {
                    count = m_server.InsertTable(table);
                }
                else if (option == DatabaseSaveOptions.Save)
                {
                    count = m_server.SaveTable(table);
                }

            string por = "";
            if( table.Rows.Count > 0)
            {
                por = "("+table.Rows[0][0].ToString()+", "+table.Rows[table.Rows.Count-1][0].ToString()+")";
            }

            Logger.WriteLine("TimeSeriesDatabase: Saved " + count + " records "+ table.TableName+" "+por);

            return count;
        }
Exemple #6
0
 /// <summary>
 /// Updates any changes in this Series to the database
 /// </summary>
 /// <param name="sdi">database id for this series</param>
 /// <param name="s">series to be saved to database</param>
 /// <param name="overwrite">delete overlaping-existing data before saving</param>
 /// <returns>nubmer of series points updated</returns>
 public int SaveTimeSeriesTable(int sdi, Series s, DatabaseSaveOptions option)
 {
     if(ReadOnly )
     {
         Logger.WriteLine("Error: SaveTimeSeriesTable ignored because of ReadOnly setting");
         return 0;
     }
     SeriesCatalogRow si = GetSeriesRow(sdi);
     // I think we should set overwrite to true for all cases?
     // However, there would be performance penalty in cases
     // this is not necessary
     int rval = ImportTimeSeriesTable(s.Table, si, option);
     return rval;
 }
Exemple #7
0
        //public event EventHandler<SeriesEventArgs> AfterSave;
        //private void OnAfterSave(SeriesEventArgs e)
        //{
        //    EventHandler<SeriesEventArgs> handler = AfterSave;
        //    if (handler != null)
        //        handler(this, e);
        //}
        /// <summary>
        /// Import Series s into the database.
        /// Series s is saved to the tablename defined in the Series s.DataTable.TableName
        /// the table will be created if necessary. 
        /// </summary>
        public void ImportSeriesUsingTableName(Series s, string[] folderNames ,DatabaseSaveOptions saveOption = DatabaseSaveOptions.UpdateExisting)
        {
            Logger.WriteLine("ImportSeriesUsingTableName: '" + s.Table.TableName+"'");
            FixInvalidTableName(s);

            var sr  = GetSeriesRow("tablename ='" + s.Table.TableName.ToLower() +"'");

            if (sr == null)
            {// create new series.
                //sr = GetNewSeriesRow();
                Logger.WriteLine("table: " + s.Table.TableName + " does not exist in the catalog");
                TimeSeriesName tn = new TimeSeriesName(s.Table.TableName);
                PiscesFolder folder = RootFolder;
                if (folderNames.Length == 0 && tn.interval != "")
                {
                   folder = GetOrCreateFolder(new string[] { tn.interval });
                }
                else
                {
                    folder = GetOrCreateFolder(RootFolder,folderNames);
                }

                sr = GetNewSeriesRow();
                sr.TimeInterval = tn.GetTimeInterval().ToString();
                sr.siteid = tn.siteid;
                sr.Name = s.Name;
                sr.Parameter = s.Parameter;
                sr.ParentID = folder.ID;

                Logger.WriteLine("Info: ImportSeriesUsingTableName()  series: " + s.Name + " tablename=" + s.Table.TableName);
                sr.TableName = s.Table.TableName;

                m_server.SaveTable(sr.Table);

            }

                ImportTimeSeriesTable(s.Table, sr, saveOption);

              //  OnAfterSave(new SeriesEventArgs(s));
        }