public async Task Handle(SaveSensorDataEvent @event) { // Validate if (string.IsNullOrEmpty(@event.SensorKey) || !double.TryParse(@event.Value.ToString(), out _)) { return; } // Save in DB var entity = new SensorData { SensorKey = @event.SensorKey, Value = @event.Value.ToString(CultureInfo.InvariantCulture), TimeStamp = @event.Time ?? DateTime.UtcNow }; SensorDataValidatorExecutor.Execute(entity, true); var created = await _sensorDataRepository.CreateAsync(entity); var data = JsonConvert.SerializeObject(created); // Notify UI via SignalR (uses 'sensor' topic) await _hubContext.Clients.All.SendAsync(Constants.Topics.Sensor, data); }
public override Task <ServiceResult <SensorData> > Update(string id, SensorData entity) { SensorDataValidatorExecutor.Execute(entity, true); if (string.IsNullOrWhiteSpace(entity.Id)) { entity.Id = id; } return(base.Update(id, entity)); }
public override Task <ServiceResult <SensorData> > Add(SensorData entity) { SensorDataValidatorExecutor.Execute(entity, true); // If no date, add current one if (entity.TimeStamp == new DateTime()) { entity.TimeStamp = DateTime.UtcNow; } return(base.Add(entity)); }