public void ImportData(string dataPath, DatabaseData databaseData, TimeSpan expectedTick) { if (model.ReadOnly) { throw new ApplicationException("Can't import data. Database readonly"); } List <string> columns = new List <string>(); List <FetchedData> unifiedData = ReadAndUnifyData(dataPath, out columns); string databasePath = databaseData.Definition.Path; RrdDb database = new RrdDb(databasePath, false); int[] dsIndexes = new int[columns.Count]; for (int i = 0; i < columns.Count; i++) { dsIndexes[i] = database.getDsIndex(columns[i]); } string[] dsNames = database.getDsNames(); rrd4n.DataAccess.Data.Sample sample = new rrd4n.DataAccess.Data.Sample(databasePath, dsNames, 0); foreach (var data in unifiedData) { sample.setDateTime(data.TimeStamp); for (int i = 0; i < data.Values.Count; i++) { sample.setValue(dsIndexes[i], data.Values[i]); } try { // When using file access abstraction //dbAccess.StoreData(sample); //Without abstraction database.store(sample); sample.clearValues(); } catch (ArgumentException) { } model.DatabaseDirty = true; } database.close(); OpenDatabase(databasePath); }
public void ImportData(string dataPath, DatabaseData databaseData, TimeSpan expectedTick ) { if (model.ReadOnly) throw new ApplicationException("Can't import data. Database readonly"); List<string> columns = new List<string>(); List<FetchedData> unifiedData = ReadAndUnifyData(dataPath, out columns); string databasePath = databaseData.Definition.Path; RrdDb database = new RrdDb(databasePath, false); int[] dsIndexes = new int[columns.Count]; for (int i = 0; i < columns.Count; i++) { dsIndexes[i] = database.getDsIndex(columns[i]); } string[] dsNames = database.getDsNames(); rrd4n.DataAccess.Data.Sample sample = new rrd4n.DataAccess.Data.Sample(databasePath, dsNames, 0); foreach (var data in unifiedData) { sample.setDateTime(data.TimeStamp); for (int i = 0; i < data.Values.Count; i++ ) { sample.setValue(dsIndexes[i], data.Values[i]); } try { // When using file access abstraction //dbAccess.StoreData(sample); //Without abstraction database.store(sample); sample.clearValues(); } catch (ArgumentException) { } model.DatabaseDirty = true; } database.close(); OpenDatabase(databasePath); }