Ejemplo n.º 1
0
        public Task <bool> SaveMeasurementData(PublishSensorDataRequest request)
        {
            var sensor = _context.Sensor.FirstOrDefault(x => x.HostId == request.HostId && x.HostSensorId == request.SensorId);

            if (sensor == null)
            {
                return(Task.FromResult(false));
            }
            var measurement = new Measurement()
            {
                Sensor = sensor
            };

            if (request.Timestamp > 0)
            {
                measurement.MeasurementTime = request.Timestamp.FromUnixTimestamp();
            }
            else
            {
                measurement.MeasurementTime = DateTime.Now;
            }

            switch (request.DataCase)
            {
            case PublishSensorDataRequest.DataOneofCase.DoubleData:
                measurement.Data     = request.DoubleData;
                measurement.DataType = DataType.Double;
                break;

            case PublishSensorDataRequest.DataOneofCase.IntData:
                measurement.Data     = request.IntData;
                measurement.DataType = DataType.Integer;
                break;

            default:
                throw new Exception("Unknown measurement data type");
            }


            _context.Measurement.Add(measurement);
            _context.SaveChanges();
            return(Task.FromResult(true));
        }
Ejemplo n.º 2
0
 public override Task <PublishResponse> PublishSensorData(PublishSensorDataRequest request, ServerCallContext context)
 {
     throw new NotImplementedException();
 }