using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Estsh.Core.Quartz.Enum;
using Estsh.Core.Quartz.Model;
using Estsh.Core.Quartz.Service;
using Estsh.Core.Quartz.Tools;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
namespace Estsh.Core.Quartz.Areas.MyFeature.Pages
{
public class MainModel : PageModel
{
private IQuartzHandle _quartzHandle;
private IQuartzLogService _logService;
public MainModel(IQuartzHandle quartzHandle, IQuartzLogService logService)
{
_quartzHandle = quartzHandle;
_logService = logService;
}
[BindProperty]
public tab_quarz_task Input { get; set; }
///
/// 获取任务列表
///
///
public async Task OnGetSelectJob()
{
var jobs = await _quartzHandle.GetJobs();
return new JsonDataResult(jobs);
}
///
/// 新建任务
///
///
public async Task OnPostAddJob()
{
var date = await _quartzHandle.AddJob(Input);
Input.Status = Convert.ToInt32(JobState.暂停);
return new JsonDataResult(date);
}
///
/// 暂停任务
///
///
public async Task OnPostPauseJob()
{
var date = await _quartzHandle.Pause(Input);
return new JsonDataResult(date);
}
///
/// 开启任务
///
///
public async Task OnPostStartJob()
{
var date = await _quartzHandle.Start(Input);
return new JsonDataResult(date);
}
///
/// 立即执行任务
///
///
public async Task OnPostRunJob()
{
var date = await _quartzHandle.Run(Input);
return new JsonDataResult(date);
}
///
/// 修改任务
///
///
public async Task OnPostUpdateJob()
{
var date = await _quartzHandle.Update(Input);
return new JsonDataResult(date);
}
///
/// 删除任务
///
///
public async Task OnPostDeleteJob()
{
var date = await _quartzHandle.Remove(Input);
return new JsonDataResult(date);
}
///
/// 获取任务执行记录
///
///
public async Task OnPostJobRecord(string taskName, string groupName, int current, int size)
{
var date = await _logService.GetLogs(taskName,groupName, current, size);
return new JsonDataResult(date);
}
///
/// 获取已注入的任务类
///
///
public IActionResult OnGetSelectClassJob()
{
var date = ClassJobsFactory.ClassJobs;
return new JsonDataResult(date);
}
public void OnGet()
{
}
}
}