using Longbow.Tasks;
using Longbow.Web.SignalR;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
namespace Bootstrap.Admin.Controllers.Api
{
///
///
///
[Route("api/[controller]")]
[ApiController]
public class TasksLogController : ControllerBase
{
///
///
///
///
///
///
[HttpGet]
public bool Get([FromQuery]string name, [FromServices]IHubContext hub)
{
var sche = TaskServicesManager.GetOrAdd(name);
sche.Triggers[0].RegisterPulseCallback(async t =>
{
var success = t.Cancelled ? "Cancelled" : "Success";
var result = $"{t.Scheduler.LastRuntime.Value.DateTime}: Trigger({t.GetType().Name}) Run({success}) NextRuntime: {t.NextRuntime.Value.DateTime} Elapsed: {t.LastRunElapsedTime.Seconds}s";
await SignalRManager.SendTaskLog(hub.Clients.All, result);
});
return true;
}
}
}