public HttpResponseMessage Post(MeasurementBatch measurementBatch) { if (measurementBatch != null && measurementBatch.Measurements != null && measurementBatch.Measurements.Any()) { measurementBatch.BatchDate = measurementBatch.BatchDate.AddSeconds(0 - measurementBatch.BatchDate.Second); var batchId = _repo.InsertMeasurementBatch(measurementBatch); var reduxStack = new MeasurementReduxStack() { MeasurementDate = measurementBatch.BatchDate.ToString("H:mm"), Values = new List <MeasurementRedux>() }; foreach (var measurement in measurementBatch.Measurements) { measurement.MeasurementDate = measurement.MeasurementDate.AddSeconds(0 - measurement.MeasurementDate.Second); measurement.BatchId = (int)batchId; measurement.InsertDate = DateTime.Now; _repo.InsertMeasurement(measurement); reduxStack.Values.Add(new MeasurementRedux { SensorName = measurement.SensorName, Value = measurement.Value }); } var context = GlobalHost.ConnectionManager.GetHubContext <MonitorHub>(); context.Clients.All.MeasurementNotification(JsonConvert.SerializeObject(reduxStack)); } return(new HttpResponseMessage(HttpStatusCode.Accepted)); }
public long InsertMeasurementBatch(MeasurementBatch batch) { using (IDbConnection db = _dbFactory.OpenDbConnection()) { db.Insert(batch); return(db.GetLastInsertId()); } }