public List <Models.Telemetry> GetTelemetry(Guid id, Guid organization) { List <Models.Telemetry> telemetryList = null; try { //SQL Statement var sqlString = "SELECT * FROM telemetry WHERE id = @id AND organization = @organization"; using (var connection = new NpgsqlConnection(connectionString)) { connection.Open(); using (var command = new NpgsqlCommand(sqlString, connection)) { command.Parameters.AddWithValue("@id", NpgsqlTypes.NpgsqlDbType.Uuid, id); command.Parameters.AddWithValue("@organization", NpgsqlTypes.NpgsqlDbType.Uuid, organization); command.Prepare(); using (var reader = command.ExecuteReader()) { if (reader != null && reader.HasRows) { //Initialize Telemetry Object Models.Telemetry telemetry = null; //Create a List to hold multiple Telemetry Objects telemetryList = new List <Models.Telemetry>(); while (reader.Read()) { //Create and hydrate a new Object telemetry = new Models.Telemetry(); telemetry.Id = Guid.Parse(reader["id"].ToString()); telemetry.DigitalTwin = Guid.Parse(reader["digital_twin"].ToString()); telemetry.DigitalTwinData = Convert.ToString(reader["digital_twin_data"]).Trim(); telemetry.DigitalTwinModel = Guid.Parse(reader["digital_twin_model"].ToString()); telemetry.Created = Convert.ToDateTime(reader["created"]); //Add to List telemetryList.Add(telemetry); } } } } } return(telemetryList); } catch (Exception ex) { //Log Exception _logger.LogError(ex, "error retrieving telemetry"); return(telemetryList); } }
public async Task Post(string deviceId, [FromBody] Models.Telemetry telemetry) { IDeviceActor actor = GetActor(deviceId); var deviceTelemetry = new DeviceActor.Interfaces.Telemetry() { Humidity = telemetry.Humidity, Temperature = telemetry.Temperature, Timestamp = telemetry.Timestamp }; await actor.SaveTelemetry(deviceTelemetry); }
private async Task <dynamic> SubmitTelemetryAsyncTask(Models.Telemetry telemetry) { if (functionUrl == string.Empty) { throw new Exception("URL must be updated in Repositories/Telemetry/AzureFunctionTelemetryRepositoryKey.cs"); } Log("Serialising payload to JSON"); var json = JsonConvert.SerializeObject(telemetry); Log("Sending payload to Azure Function"); var result = await HttpPost(functionUrl, json); Log("Deserialising response"); var resp = JsonConvert.DeserializeObject(result); return(resp); }
public IAsyncOperation <dynamic> SubmitTelemetryAsync(Models.Telemetry telemetry) => SubmitTelemetryAsyncTask(telemetry).AsAsyncOperation();