diff --git a/src/blazor/admin/BootstrapAdmin.Web/BootstrapAdmin.Web.csproj b/src/blazor/admin/BootstrapAdmin.Web/BootstrapAdmin.Web.csproj index cbb79777..95dedd37 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/BootstrapAdmin.Web.csproj +++ b/src/blazor/admin/BootstrapAdmin.Web/BootstrapAdmin.Web.csproj @@ -3,6 +3,10 @@ true + + + + diff --git a/src/blazor/admin/BootstrapAdmin.Web/Extensions/TasksExtensions.cs b/src/blazor/admin/BootstrapAdmin.Web/Extensions/TasksExtensions.cs new file mode 100644 index 00000000..58cbbdc7 --- /dev/null +++ b/src/blazor/admin/BootstrapAdmin.Web/Extensions/TasksExtensions.cs @@ -0,0 +1,19 @@ +using BootstrapAdmin.Web.Models; +using Longbow.Tasks; + +namespace BootstrapAdmin.Web.Extensions; + +public static class TasksExtensions +{ + public static List ToTasksModelList(this IEnumerable schedulers) => schedulers.Select(i => new TasksModel + { + Name = i.Name, + CreateTime = i.CreatedTime, + LastRuntime = i.LastRuntime, + NextRuntime = i.NextRuntime, + LastRunResult = i.LastRunResult, + Status = i.Status, + Trigger = i.Triggers.First().ToString() + + }).ToList(); +} diff --git a/src/blazor/admin/BootstrapAdmin.Web/Models/TasksModel.cs b/src/blazor/admin/BootstrapAdmin.Web/Models/TasksModel.cs new file mode 100644 index 00000000..46491eaa --- /dev/null +++ b/src/blazor/admin/BootstrapAdmin.Web/Models/TasksModel.cs @@ -0,0 +1,32 @@ +using Longbow.Tasks; +using System.ComponentModel.DataAnnotations; + +namespace BootstrapAdmin.Web.Models; + +public class TasksModel +{ + [Display(Name = "任务名称")] + [NotNull] + public string? Name { get; set; } + + [Display(Name = "创建时间")] + public DateTimeOffset CreateTime { get; set; } + + [Display(Name = "上次运行时间")] + public DateTimeOffset? LastRuntime { get; set; } + + [Display(Name = "下次运行时间")] + public DateTimeOffset? NextRuntime { get; set; } + + [Display(Name = "触发条件")] + [NotNull] + public string? Trigger { get; set; } + + [Display(Name = "执行结果")] + [NotNull] + public TriggerResult LastRunResult { get; set; } + + [Display(Name = "任务状态")] + [NotNull] + public SchedulerStatus Status { get; set; } +} diff --git a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor index 1f73c78c..91555c0d 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor +++ b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor @@ -1,6 +1,6 @@ @page "/Admin/Tasks" - +

后台任务说明:

@@ -27,3 +27,20 @@
+ + + + + + + + + + + + + + + + + diff --git a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor.cs b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor.cs index f2819ac6..1927da88 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor.cs +++ b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Tasks.razor.cs @@ -1,6 +1,33 @@ -namespace BootstrapAdmin.Web.Pages.Admin; +using BootstrapAdmin.DataAccess.Models; +using BootstrapAdmin.Web.Extensions; +using BootstrapAdmin.Web.Models; +using Longbow.Tasks; + +namespace BootstrapAdmin.Web.Pages.Admin; public partial class Tasks { + private Task> OnQueryAsync(QueryPageOptions options) + { + var tasks = TaskServicesManager.ToList().ToTasksModelList(); + return Task.FromResult(new QueryData() + { + Items = tasks + }); + } + private Task OnPause(TasksModel model) + { + return Task.CompletedTask; + } + + private Task OnRun(TasksModel model) + { + return Task.CompletedTask; + } + + private Task OnLog(TasksModel model) + { + return Task.CompletedTask; + } }