LANCommander/LANCommander.Server.Services/BeaconService.cs

47 lines
1.2 KiB
C#
Raw Permalink Normal View History

using BeaconLib;
2024-08-04 18:44:33 -05:00
using LANCommander.Server.Models;
2025-03-16 14:35:53 -05:00
using LANCommander.Server.Services.Abstractions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
2024-08-04 18:44:33 -05:00
namespace LANCommander.Server.Services
{
public class BeaconService(
ILogger<BeaconService> logger,
IVersionProvider versionProvider) : BaseService(logger), IHostedService, IDisposable
{
private Beacon _beacon;
public override void Initialize()
{
_beacon = new Beacon("LANCommander", Convert.ToUInt16(_settings.Port));
}
public void Dispose()
{
_beacon?.Dispose();
}
public Task StartAsync(CancellationToken cancellationToken)
{
2024-08-26 21:29:25 -05:00
string[] dataParts = new string[]
{
_settings.Beacon?.Address,
_settings.Beacon?.Name,
versionProvider.GetCurrentVersion().ToString(),
2024-08-26 21:29:25 -05:00
};
_beacon.BeaconData = String.Join('|', dataParts);
_beacon.Start();
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken)
{
_beacon.Stop();
return Task.CompletedTask;
}
}
}