@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 { private List _jobs; public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } } protected override async Task OnParametersSetAsync() { _jobs = await JobService.GetJobsAsync(); } private string DisplayStatus(bool isEnabled, bool isExecuting) { var status = string.Empty; if (!isEnabled) { status = "Disabled"; } else { if (isExecuting) { status = "Executing"; } else { status = "Idle"; } } return status; } private string DisplayFrequency(int interval, string frequency) { var result = "Every " + interval.ToString() + " "; switch (frequency) { case "m": result += "Minute"; break; case "H": result += "Hour"; break; case "d": result += "Day"; break; case "M": result += "Month"; break; } if (interval > 1) { result += "s"; } return result; } 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(); } }