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();
     }
 }