Schedule Jobs from UI
This commit is contained in:
@@ -42,7 +42,33 @@
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="12" md="6" Class="d-flex justify-end align-center">
|
||||
<MudItem xs="12" sm="12" md="6" Class="d-flex justify-end align-center gap-2">
|
||||
<MudMenu Icon="@Icons.Material.Filled.PlayArrow"
|
||||
Label="Schedule Jobs"
|
||||
Variant="Variant.Filled"
|
||||
Color="Color.Success"
|
||||
Size="Size.Medium"
|
||||
EndIcon="@Icons.Material.Filled.KeyboardArrowDown">
|
||||
<MudMenuItem OnClick="@(() => ScheduleJobs("all"))">
|
||||
<div class="d-flex align-center">
|
||||
<MudIcon Icon="@Icons.Material.Filled.PlayCircle" Class="mr-2" />
|
||||
<span>Run All Jobs</span>
|
||||
</div>
|
||||
</MudMenuItem>
|
||||
<MudMenuItem OnClick="@(() => ScheduleJobs("imports"))">
|
||||
<div class="d-flex align-center">
|
||||
<MudIcon Icon="@Icons.Material.Filled.FileDownload" Class="mr-2" />
|
||||
<span>Run All Imports</span>
|
||||
</div>
|
||||
</MudMenuItem>
|
||||
<MudMenuItem OnClick="@(() => ScheduleJobs("processes"))">
|
||||
<div class="d-flex align-center">
|
||||
<MudIcon Icon="@Icons.Material.Filled.Settings" Class="mr-2" />
|
||||
<span>Run All Processes</span>
|
||||
</div>
|
||||
</MudMenuItem>
|
||||
</MudMenu>
|
||||
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Refresh"
|
||||
OnClick="LoadJobs"
|
||||
Color="Color.Primary"
|
||||
|
||||
@@ -129,6 +129,41 @@ public partial class Index : ComponentBase, IDisposable
|
||||
await JSRuntime.InvokeVoidAsync("open", url, "_blank");
|
||||
}
|
||||
|
||||
private async Task ScheduleJobs(string type)
|
||||
{
|
||||
isLoading = true;
|
||||
|
||||
try
|
||||
{
|
||||
(bool success, int jobsCreated, string message) result = type switch
|
||||
{
|
||||
"all" => await JobService.ScheduleAllJobsAsync(),
|
||||
"imports" => await JobService.ScheduleImportJobsAsync(),
|
||||
"processes" => await JobService.ScheduleProcessJobsAsync(),
|
||||
_ => (false, 0, "Unknown job type")
|
||||
};
|
||||
|
||||
if (result.success)
|
||||
{
|
||||
Snackbar.Add($"{result.message} ({result.jobsCreated} jobs created)", Severity.Success);
|
||||
await LoadJobs();
|
||||
}
|
||||
else
|
||||
{
|
||||
Snackbar.Add(result.message, Severity.Error);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Scheduling jobs failed: {ex.Message}");
|
||||
Snackbar.Add($"Failed to schedule jobs: {ex.Message}", Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
isLoading = false;
|
||||
}
|
||||
}
|
||||
|
||||
private Color GetStatusColor(JobStatus status)
|
||||
{
|
||||
return status switch
|
||||
|
||||
Reference in New Issue
Block a user