#if false
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OrpaonVision.Core.Common;
using OrpaonVision.Core.RuleEngine;
using OrpaonVision.Core.AlarmSystem;
using OrpaonVision.Core.ManualOverride;
using OrpaonVision.SiteApp.Runtime.Services;
namespace OrpaonVision.SiteApp.Runtime.Controllers;
///
/// 运行时API控制器,提供Agent-2负责的所有服务接口。
///
[ApiController]
[Route("api/[controller]")]
[Authorize]
public sealed class RuntimeController : ControllerBase
{
private readonly IRuleEngineService _ruleEngineService;
private readonly IRuntimeStateMachineService _stateMachineService;
private readonly IManualOverrideService _manualOverrideService;
private readonly IAlarmSystemService _alarmSystemService;
private readonly ILogger _logger;
public RuntimeController(
IRuleEngineService ruleEngineService,
IRuntimeStateMachineService stateMachineService,
IManualOverrideService manualOverrideService,
IAlarmSystemService alarmSystemService,
ILogger logger)
{
_ruleEngineService = ruleEngineService;
_stateMachineService = stateMachineService;
_manualOverrideService = manualOverrideService;
_alarmSystemService = alarmSystemService;
_logger = logger;
}
#region 规则引擎接口
///
/// 获取所有规则。
///
[HttpGet("rules")]
public async Task>> GetRules(CancellationToken cancellationToken = default)
{
var result = await _ruleEngineService.GetRulesAsync(cancellationToken);
if (!result.IsSuccess)
{
return StatusCode(500, new { error = result.Message, traceId = result.TraceId });
}
return Ok(result.Data);
}
///
/// 评估规则。
///
[HttpPost("rules/evaluate")]
public async Task> EvaluateRules([FromBody] RuleEvaluationRequest request, CancellationToken cancellationToken = default)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var result = await _ruleEngineService.EvaluateRulesAsync(request, cancellationToken);
if (!result.IsSuccess)
{
return StatusCode(500, new { error = result.Message, traceId = result.TraceId });
}
return Ok(result.Data);
}
///
/// 获取规则详情。
///
[HttpGet("rules/{ruleId}")]
public async Task> GetRule(string ruleId, CancellationToken cancellationToken = default)
{
if (!Guid.TryParse(ruleId, out var guid))
{
return BadRequest("无效的规则ID格式");
}
var result = await _ruleEngineService.GetRuleAsync(guid, cancellationToken);
if (!result.IsSuccess)
{
return NotFound(new { error = result.Message, traceId = result.TraceId });
}
return Ok(result.Data);
}
#endregion
#region 状态机接口
///
/// 获取当前状态。
///
[HttpGet("state/current")]
public ActionResult