public string MergePoints(string dbName, string meas, [FromBody] DataRows data, string type = "float", string minInterval = null, bool onlyChangedValues = false) { using ( MeLog.LogDebug( $"db: {dbName}, meas: {meas}, point#: {data.Rows.Count}, minInterval: {minInterval}, onlyChangedValues: {onlyChangedValues}")) { IMeasurement measurement = null; Locker.WriterLock(() => { var myDb = DbService.DbManagement.GetDb(dbName); measurement = myDb.GetOrCreateMeasurement(meas, type); }); measurement.MergeDataPoints(data.AsIDataRows(), i => onlyChangedValues ? i.ValueChanges() : i.MinimalTimeSpan(minInterval)); return("ok"); } }