Schedule Jobs from UI
This commit is contained in:
@@ -88,6 +88,89 @@ public class JobService
|
||||
|
||||
return await response.Content.ReadFromJsonAsync<CreateJobResult>();
|
||||
}
|
||||
|
||||
public async Task<(bool success, int jobsCreated, string message)> ScheduleAllJobsAsync(string? nameFilter = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var query = string.IsNullOrEmpty(nameFilter) ? "" : $"?nameFilter={Uri.EscapeDataString(nameFilter)}";
|
||||
var response = await _httpClient.PostAsync($"Jobs/ui/schedule{query}", null);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var error = await response.Content.ReadAsStringAsync();
|
||||
return (false, 0, $"Failed to schedule jobs: {error}");
|
||||
}
|
||||
|
||||
var json = await response.Content.ReadAsStringAsync();
|
||||
var result = JsonSerializer.Deserialize<JsonElement>(json, _jsonOptions);
|
||||
|
||||
var jobsCreated = result.GetProperty("jobsCreated").GetInt32();
|
||||
var message = result.GetProperty("message").GetString() ?? "Jobs scheduled";
|
||||
|
||||
return (true, jobsCreated, message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Scheduling jobs failed: {ex.Message}");
|
||||
return (false, 0, $"Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool success, int jobsCreated, string message)> ScheduleImportJobsAsync(string? nameFilter = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var query = string.IsNullOrEmpty(nameFilter) ? "" : $"?nameFilter={Uri.EscapeDataString(nameFilter)}";
|
||||
var response = await _httpClient.PostAsync($"Jobs/ui/schedule/imports{query}", null);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var error = await response.Content.ReadAsStringAsync();
|
||||
return (false, 0, $"Failed to schedule import jobs: {error}");
|
||||
}
|
||||
|
||||
var json = await response.Content.ReadAsStringAsync();
|
||||
var result = JsonSerializer.Deserialize<JsonElement>(json, _jsonOptions);
|
||||
|
||||
var jobsCreated = result.GetProperty("jobsCreated").GetInt32();
|
||||
var message = result.GetProperty("message").GetString() ?? "Import jobs scheduled";
|
||||
|
||||
return (true, jobsCreated, message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Scheduling import jobs failed: {ex.Message}");
|
||||
return (false, 0, $"Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool success, int jobsCreated, string message)> ScheduleProcessJobsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.PostAsync("Jobs/ui/schedule/processes", null);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var error = await response.Content.ReadAsStringAsync();
|
||||
return (false, 0, $"Failed to schedule process jobs: {error}");
|
||||
}
|
||||
|
||||
var json = await response.Content.ReadAsStringAsync();
|
||||
var result = JsonSerializer.Deserialize<JsonElement>(json, _jsonOptions);
|
||||
|
||||
var jobsCreated = result.GetProperty("jobsCreated").GetInt32();
|
||||
var message = result.GetProperty("message").GetString() ?? "Process jobs scheduled";
|
||||
|
||||
return (true, jobsCreated, message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Scheduling process jobs failed: {ex.Message}");
|
||||
return (false, 0, $"Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class JobStats
|
||||
|
||||
Reference in New Issue
Block a user