using Microsoft.AspNetCore.Mvc;
|
using WIDESEAWCS_S7Simulator.Application;
|
|
namespace WIDESEAWCS_S7Simulator.Server.Controllers;
|
|
[ApiController]
|
[Route("api/[controller]")]
|
public class SyncController : ControllerBase
|
{
|
private readonly InstanceSyncService _syncService;
|
private readonly ILogger<SyncController> _logger;
|
|
public SyncController(InstanceSyncService syncService, ILogger<SyncController> logger)
|
{
|
_syncService = syncService;
|
_logger = logger;
|
}
|
|
/// <summary>
|
/// 手动触发实例同步
|
/// </summary>
|
[HttpPost("SyncInstances")]
|
public async Task<IActionResult> SyncInstances()
|
{
|
try
|
{
|
_logger.LogInformation("收到手动同步请求");
|
await _syncService.SyncInstancesAsync();
|
return Ok(new { message = "同步完成", lastSyncTime = _syncService.LastSyncTime });
|
}
|
catch (Exception ex)
|
{
|
_logger.LogError(ex, "手动同步失败");
|
return StatusCode(500, new { message = "同步失败", error = ex.Message });
|
}
|
}
|
|
/// <summary>
|
/// 获取上次同步时间
|
/// </summary>
|
[HttpGet("LastSyncTime")]
|
public IActionResult GetLastSyncTime()
|
{
|
return Ok(new { lastSyncTime = _syncService.LastSyncTime });
|
}
|
}
|