From 837f10037dd67c7ed568728781609c606139da0a Mon Sep 17 00:00:00 2001 From: Jeas0001 <jeas0001@edu.mercantec.dk> Date: Mon, 24 Mar 2025 13:02:39 +0100 Subject: [PATCH] Mqtt works at the same time as api --- backend/Api/MQTTReciever/MQTTReciever.cs | 4 +++- backend/Api/Program.cs | 25 +++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/backend/Api/MQTTReciever/MQTTReciever.cs b/backend/Api/MQTTReciever/MQTTReciever.cs index bf01e52..162f504 100644 --- a/backend/Api/MQTTReciever/MQTTReciever.cs +++ b/backend/Api/MQTTReciever/MQTTReciever.cs @@ -52,9 +52,11 @@ namespace Api.MQTTReciever string refernceId = mqttMessageReceive.device_id; var device = _dbAccess.ReadDevice(refernceId); + if (device == null) { return Task.CompletedTask; } + newLog.Temperature = mqttMessageReceive.temperature; newLog.Date = DateTimeOffset.FromUnixTimeSeconds(mqttMessageReceive.timestamp).DateTime; - newLog.TempHigh= device.TempHigh; + newLog.TempHigh = device.TempHigh; newLog.TempLow = device.TempLow; _dbAccess.CreateLog(newLog, refernceId); diff --git a/backend/Api/Program.cs b/backend/Api/Program.cs index 7376c91..d3cdad5 100644 --- a/backend/Api/Program.cs +++ b/backend/Api/Program.cs @@ -10,19 +10,22 @@ class Program { var app = CreateWebHostBuilder(args).Build(); - - using (var scope = app.Services.CreateScope()) - { - var services = scope.ServiceProvider; - var configuration = services.GetRequiredService<IConfiguration>(); - var dbAccess = services.GetRequiredService<DbAccess>(); - - MQTTReciever mqtt = new MQTTReciever(configuration, dbAccess); - mqtt.Handle_Received_Application_Message(); - } - RunMigrations(app); + Task.Run(() => + { + using (var scope = app.Services.CreateScope()) + { + var services = scope.ServiceProvider; + var configuration = services.GetRequiredService<IConfiguration>(); + var dbAccess = services.GetRequiredService<DbAccess>(); + + MQTTReciever mqtt = new MQTTReciever(configuration, dbAccess); + mqtt.Handle_Received_Application_Message().Wait(); + } + }); + + app.Run(); }