sensor service to own folder

This commit is contained in:
Martijn Scheepers
2022-07-29 09:15:27 +02:00
parent afacf2624e
commit 1cd17f2773
6 changed files with 22 additions and 18 deletions

View File

@@ -9,6 +9,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using UCS_Status_Monitor.Database;
using UCS_Status_Monitor.Sensors;
namespace UCS_Status_Monitor.UnitTest
{
@@ -57,7 +58,7 @@ namespace UCS_Status_Monitor.UnitTest
ITelegramBotService telegrambot = Mock.Of<ITelegramBotService>();
SensorService sensorService = new(logger, configuration, telegrambot);
Models.SensorPacket sensorPacket = new()
SensorPacket sensorPacket = new()
{
Date = DateTime.Parse("2021-11-18T11:43:55.3638576+01:00"),
ComputerName = "S01-PCD04",
@@ -111,7 +112,7 @@ namespace UCS_Status_Monitor.UnitTest
ITelegramBotService telegrambot = Mock.Of<ITelegramBotService>();
SensorService sensorService = new(logger, configuration, telegrambot);
Models.SensorPacket sensorPacket = new()
SensorPacket sensorPacket = new()
{
//Date = DateTime.Parse("2021-11-18T11:43:55.3638576+01:00"),
//ComputerName = "S01-PCD04",
@@ -140,7 +141,7 @@ namespace UCS_Status_Monitor.UnitTest
ITelegramBotService telegrambot = Mock.Of<ITelegramBotService>();
SensorService sensorService = new(logger, configuration, telegrambot);
Models.SensorPacket sensorPacket = new()
SensorPacket sensorPacket = new()
{
TxString = "Rust",
};
@@ -196,7 +197,7 @@ namespace UCS_Status_Monitor.UnitTest
for (int i = 0; i < 1000; i++)
{
Models.SensorPacket sensorPacket = new()
SensorPacket sensorPacket = new()
{
Date = DateTime.Parse("2021-11-18T11:43:55.3638576+01:00"),
ComputerName = "S01-PCD04",

View File

@@ -2,6 +2,7 @@
using Microsoft.Extensions.Logging;
using System;
using System.Diagnostics;
using UCS_Status_Monitor.Sensors;
namespace UCS_Status_Monitor.Controllers
{
@@ -36,7 +37,7 @@ namespace UCS_Status_Monitor.Controllers
//"Count":3}
[HttpPost]
public JsonResult Post(Models.SensorPacket sensor)
public JsonResult Post(SensorPacket sensor)
{
//Stopwatch stopWatch = new();
//stopWatch.Start();

View File

@@ -1,5 +1,6 @@
using System;
using System.Linq;
using UCS_Status_Monitor.Sensors;
namespace UCS_Status_Monitor.Models
{
@@ -119,7 +120,7 @@ namespace UCS_Status_Monitor.Models
{
public Sensor() { }
public Sensor(Models.SensorPacket sensor)
public Sensor(SensorPacket sensor)
{
Date = sensor.Date;
ComputerName = sensor.ComputerName ?? "??";

View File

@@ -1,6 +1,6 @@
using System;
namespace UCS_Status_Monitor.Models
namespace UCS_Status_Monitor.Sensors
{
public class SensorPacket
{
@@ -10,7 +10,7 @@ namespace UCS_Status_Monitor.Models
public string UCSId { get; set; }
public string TxString { get; set; }
public string TxData { get; set; }
public Int64? Ping { get; set; }
public Int64? Count { get; set; }
public long? Ping { get; set; }
public long? Count { get; set; }
}
}

View File

@@ -7,12 +7,13 @@ using System.Threading;
using System.Threading.Channels;
using System.Threading.Tasks;
using UCS_Status_Monitor.Database;
using UCS_Status_Monitor.Sensors;
namespace UCS_Status_Monitor
namespace UCS_Status_Monitor.Sensors
{
public interface ISensorService
{
Task EnqueuePacket(Models.SensorPacket packet);
Task EnqueuePacket(SensorPacket packet);
}
public class SensorService : BackgroundService, ISensorService
{
@@ -21,7 +22,7 @@ namespace UCS_Status_Monitor
private readonly ITelegramBotService _telegramBotService;
#if DEBUG
private readonly Channel<Models.SensorPacket> MessageChannel = Channel.CreateUnbounded<Models.SensorPacket>(new UnboundedChannelOptions { SingleReader = false });
private readonly Channel<SensorPacket> MessageChannel = Channel.CreateUnbounded<SensorPacket>(new UnboundedChannelOptions { SingleReader = false });
#else
private readonly Channel<Models.SensorPacket> MessageChannel = Channel.CreateUnbounded<Models.SensorPacket>(new UnboundedChannelOptions { SingleReader = true });
#endif
@@ -45,7 +46,7 @@ namespace UCS_Status_Monitor
}
}
public async Task EnqueuePacket(Models.SensorPacket packet)
public async Task EnqueuePacket(SensorPacket packet)
{
await MessageChannel.Writer.WriteAsync(packet);
}
@@ -58,7 +59,7 @@ namespace UCS_Status_Monitor
//"TxData":"K.03 - geen lekkage",
//"Count":3}
public void ProcessPacket(Models.SensorPacket sensorpacket)
public void ProcessPacket(SensorPacket sensorpacket)
{
//Debug.WriteLine(sensor.UCSId);
Debug.WriteLine($"sensor packet from queue {sensorpacket.UCSId} - {sensorpacket.TxData} - {sensorpacket.TxString}");

View File

@@ -40,14 +40,14 @@ namespace UCS_Status_Monitor
});
services.AddHostedService(sp => sp.GetService<ITelemetryService>() as TelemetryService);
services.AddSingleton<ISensorService>(sp =>
services.AddSingleton<Sensors.ISensorService>(sp =>
{
var logger = sp.GetService<ILogger<SensorService>>();
var logger = sp.GetService<ILogger<Sensors.SensorService>>();
var config = sp.GetService<IConfiguration>();
var telegram = sp.GetService<ITelegramBotService>();
return new SensorService(logger, config, telegram);
return new Sensors.SensorService(logger, config, telegram);
});
services.AddHostedService(sp => sp.GetService<ISensorService>() as SensorService);
services.AddHostedService(sp => sp.GetService<Sensors.ISensorService>() as Sensors.SensorService);
services.AddSingleton<ITelegramBotService>(sp =>
{