diff --git a/FaKrosnoApi/Controllers/HangfireJobsController.cs b/FaKrosnoApi/Controllers/HangfireJobsController.cs index 1808e2d..b3cc7ee 100644 --- a/FaKrosnoApi/Controllers/HangfireJobsController.cs +++ b/FaKrosnoApi/Controllers/HangfireJobsController.cs @@ -83,6 +83,21 @@ public class HangfireJobsController(JobStorage jobStorage, IRecurringJobManager return Ok("Zadanie zostało dodane."); } + [HttpPost("DeleteTask")] + public async Task DeleteTask([FromBody] TaskSchedulerDto taskSchedulerDto) + { + int result = await service.DeleteTaskScheduler(taskSchedulerDto.RowPointer); + + if (result == 0) + { + return BadRequest("Nie udało się usunąć zadania."); + } + + recurringJobManager.RemoveIfExists(taskSchedulerDto.Name); + + return Ok("Zadanie zostało usunięte."); + } + [HttpGet("GetTasks")] public async Task>> GetTasks() { @@ -117,7 +132,8 @@ public class HangfireJobsController(JobStorage jobStorage, IRecurringJobManager UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, - CreateNoWindow = true + CreateNoWindow = true, + WorkingDirectory = Path.GetDirectoryName(pathToApp) } }; process.Start(); diff --git a/OrdersManagement/Components/Pages/Admin/Scheduler.razor b/OrdersManagement/Components/Pages/Admin/Scheduler.razor index 2e29e20..742738a 100644 --- a/OrdersManagement/Components/Pages/Admin/Scheduler.razor +++ b/OrdersManagement/Components/Pages/Admin/Scheduler.razor @@ -18,14 +18,17 @@
- + + + + @code { @@ -36,14 +39,23 @@ { await LoadTasks(); } + + public async Task OnActionBegin(ActionEventArgs args) + { + if (args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.Delete)) + { + await HangfireService.DeleteTaskSchedulerAsync(args.Data); + await LoadTasks(); + } + } private async Task AddTask() { var response = await HangfireService.AddTaskSchedulerAsync(NewTask); if (response == 1) { - NewTask = new TaskSchedulerDto(); // Reset form - await LoadTasks(); // Refresh list + NewTask = new TaskSchedulerDto(); + await LoadTasks(); } } diff --git a/OrdersManagement/Services/HangfireService.cs b/OrdersManagement/Services/HangfireService.cs index a36eddc..bdc7f28 100644 --- a/OrdersManagement/Services/HangfireService.cs +++ b/OrdersManagement/Services/HangfireService.cs @@ -19,4 +19,10 @@ public class HangfireService(HttpClient httpClient) HttpResponseMessage responseMessage = await httpClient.PostAsJsonAsync("api/HangfireJobs/AddTask", taskSchedulerDto); return responseMessage.IsSuccessStatusCode ? 1 : 0; } + + public async Task DeleteTaskSchedulerAsync(TaskSchedulerDto taskSchedulerDto) + { + HttpResponseMessage responseMessage = await httpClient.PostAsJsonAsync("api/HangfireJobs/DeleteTask", taskSchedulerDto); + return responseMessage.IsSuccessStatusCode ? 1 : 0; + } } \ No newline at end of file diff --git a/OrdersManagementDataModel/Dtos/TaskSchedulerDto.cs b/OrdersManagementDataModel/Dtos/TaskSchedulerDto.cs index 76bef02..872ba00 100644 --- a/OrdersManagementDataModel/Dtos/TaskSchedulerDto.cs +++ b/OrdersManagementDataModel/Dtos/TaskSchedulerDto.cs @@ -5,6 +5,7 @@ namespace OrdersManagementDataModel.Dtos; public class TaskSchedulerDto { public int Id { get; set; } + public Guid RowPointer { get; set; } public string Name { get; set; } public string Path { get; set; } public string CronOptions { get; set; }