ibms-MCUT/Mqtt/Controllers/AlarmController.cs
2025-02-12 09:03:23 +08:00

62 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Mqtt.Hubs;
using Mqtt.Models;
using Mqtt.Services;
using MQTTnet.Client;
using Repository.BackendRepository.Interface;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Mqtt.Controllers
{
[ApiController]
[Route("api/[controller]/[action]")]
public class AlarmController : ControllerBase
{
Dictionary<string, object> dic = new Dictionary<string, object>();
private readonly ILogger<MqttClientService> _logger;
private readonly IBackendRepository _backendRepository;
private readonly IBackgroundServicePostgresqlRepository _backgroundServicePostgresqlRepository;
private readonly IConfiguration _configuration;
public AlarmController(ILogger<MqttClientService> logger, IBackgroundServicePostgresqlRepository backgroundServicePostgresqlRepository, IBackendRepository backendRepository,
IConfiguration configuration)
{
this._logger = logger;
this._configuration = configuration;
this._backendRepository = backendRepository;
this._backgroundServicePostgresqlRepository = backgroundServicePostgresqlRepository;
}
[HttpGet]
public async Task<IActionResult> AlarmList()
{
dic.Add("data", await new MqttClientService(_logger, _configuration, _backgroundServicePostgresqlRepository, _backendRepository).GetAlarmSettings());
return new OkObjectResult(dic);
}
[HttpPost]
public async Task<IActionResult> AlarmResult()
{
try
{
await new MqttClientService(_logger, _configuration, _backgroundServicePostgresqlRepository, _backendRepository).RefreshAlarmSettings();
dic.Add("ok", true);
dic.Add("msg", "重新設定成功");
}
catch (Exception e)
{
dic.Add("ok", false);
dic.Add("msg", "重新設定失敗");
_logger.LogError($"重新設定失敗, Message: {e.Message}");
}
return new OkObjectResult(dic);
}
}
}