@namespace Oqtane.Modules.Admin.Jobs @inherits ModuleBase @inject IJobService JobService @if (Jobs == null) {

Loading...

} else {

      Name Status Frequency Next Execution  
@context.Name @DisplayStatus(context.IsEnabled, context.IsExecuting) @DisplayFrequency(context.Interval, context.Frequency) @context.NextExecution @if (context.IsStarted) { } else { }
} @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } } List Jobs; protected override async Task OnParametersSetAsync() { Jobs = await JobService.GetJobsAsync(); } private string DisplayStatus(bool IsEnabled, bool IsExecuting) { string status = ""; if (!IsEnabled) { status = "Disabled"; } else { if (IsExecuting) { status = "Executing"; } else { status = "Idle"; } } return status; } private string DisplayFrequency(int Interval, string Frequency) { string frequency = "Every " + Interval.ToString() + " "; switch (Frequency) { case "m": frequency += "Minute"; break; case "H": frequency += "Hour"; break; case "d": frequency += "Day"; break; case "M": frequency += "Month"; break; } if (Interval > 1) { frequency += "s"; } return frequency; } private async Task DeleteJob(Job Job) { try { await JobService.DeleteJobAsync(Job.JobId); await logger.LogInformation("Job Deleted {Job}", Job); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Deleting Job {Job} {Error}", Job, ex.Message); AddModuleMessage("Error Deleting Job", MessageType.Error); } } private async Task StartJob(int JobId) { await JobService.StartJobAsync(JobId); } private async Task StopJob(int JobId) { await JobService.StopJobAsync(JobId); } private async Task Refresh() { Jobs = await JobService.GetJobsAsync(); StateHasChanged(); } }