/// <summary> /// Stores a set of measurements in the database. /// </summary> /// <param name="measurements">The set of measurements.</param> private void Persist(MeasurementSet measurements) { var houseController = new HouseController(_dataService); var pipeController = new PipeController(_dataService); var sourceController = new SourceController(_dataService); measurements.Houses.ForEach((House house) => houseController.Create(house)); measurements.Pipes.ForEach((Pipe pipe) => pipeController.Create(pipe)); measurements.Sources.ForEach((Source source) => sourceController.Create(source)); }
/// <summary> /// Handles the receival of a queue message. /// </summary> /// <param name="message">The message that was read.</param> private void HandleUpdate(Message message) { MeasurementSet measurements = JsonConvert.DeserializeObject <MeasurementSet>(message.Body.ToString()); // https://stackoverflow.com/questions/249760/how-can-i-convert-a-unix-timestamp-to-datetime-and-vice-versa DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); dateTime = dateTime.AddMilliseconds(measurements.Timestamp); measurements.AddDates(dateTime); Persist(measurements); SendUpdateToClients(measurements); }
/// <summary> /// Notifies clients that there was a new measurement received. /// </summary> /// <param name="measurementSet">The set of measurements.</param> private void SendUpdateToClients(MeasurementSet measurementSet) { _webSocketService.NotifyClients <MeasurementSet>(measurementSet); }