示例#1
0
        /// <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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
 /// <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);
 }