* Fixed New Task creation

* Change Scheduler view
This commit is contained in:
2025-02-14 19:46:34 +01:00
parent c0fed5b3ec
commit d35955b461
5 changed files with 33 additions and 17 deletions

View File

@@ -88,21 +88,24 @@ public class HangfireJobsController(JobStorage jobStorage, IRecurringJobManager
{ {
var tasks = await service.GetTaskSchedulers(); var tasks = await service.GetTaskSchedulers();
// foreach (TaskSchedulerDto taskSchedulerDto in tasks) foreach (TaskSchedulerDto taskSchedulerDto in tasks)
// { {
// taskSchedulerDto.JobDetails = GetJob(taskSchedulerDto.Name); var job = GetJob(taskSchedulerDto.Name);
// } taskSchedulerDto.LastExecution = job?.LastExecution;
taskSchedulerDto.NextExecution = job?.NextExecution;
}
return Ok(tasks); return Ok(tasks);
} }
private JobData? GetJob(string jobId) private RecurringJobDto? GetJob(string jobId)
{ {
using IStorageConnection? connection = jobStorage.GetConnection(); using IStorageConnection? connection = jobStorage.GetConnection();
return connection.GetJobData(jobId); IList<RecurringJobDto>? recurringJobs = connection.GetRecurringJobs();
return recurringJobs.FirstOrDefault(x => x.Id == jobId);
} }
private void RunConsoleApplication(string pathToApp) public void RunConsoleApplication(string pathToApp)
{ {
try try
{ {

View File

@@ -11,7 +11,7 @@ public class ScheduleJobService(IEmailService emailService, IServiceScopeFactory
using var scope = scopeFactory.CreateScope(); using var scope = scopeFactory.CreateScope();
IEdiCustomerOrderService ediCustomerOrderService = scope.ServiceProvider.GetRequiredService<IEdiCustomerOrderService>(); IEdiCustomerOrderService ediCustomerOrderService = scope.ServiceProvider.GetRequiredService<IEdiCustomerOrderService>();
IEnumerable<EdiCustomerOrderTranslateDto> missingOrders = IEnumerable<EdiCustomerOrderTranslateDto> missingOrders =
(await ediCustomerOrderService.FindMissingOrders(new DateTime(2025, 2, 5))).ToList(); (await ediCustomerOrderService.FindMissingOrders(DateTime.Now.AddDays(-1))).ToList();
if (missingOrders.Any()) if (missingOrders.Any())
{ {

View File

@@ -3,24 +3,28 @@
@using Syncfusion.Blazor.Grids @using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Inputs @using Syncfusion.Blazor.Inputs
@using Syncfusion.Blazor.Buttons @using Syncfusion.Blazor.Buttons
@using OrdersManagement.Components
@inject HangfireService HangfireService @inject HangfireService HangfireService
<h3>Zarządzanie Zadaniami</h3> <h3>Zarządzanie Zadaniami</h3>
<br />
<div> <div id="wrapper">
<SfTextBox @bind-Value="NewTask.Name" Placeholder="Nazwa zadania"></SfTextBox> <SfTextBox @bind-Value="NewTask.Name" Placeholder="Nazwa zadania"></SfTextBox>
<SfTextBox @bind-Value="NewTask.Path" Placeholder="Ścieżka do aplikacji"></SfTextBox> <SfTextBox @bind-Value="NewTask.Path" Placeholder="Ścieżka do aplikacji"></SfTextBox>
<SfTextBox @bind-Value="NewTask.CronOptions" Placeholder="CRON"></SfTextBox> <SfTextBox @bind-Value="NewTask.CronOptions" Placeholder="CRON"></SfTextBox>
<SfButton Content="Dodaj Zadanie" @onclick="AddTask"></SfButton> <br />
<div>
<SfButton Content="Dodaj Zadanie" @onclick="AddTask"></SfButton>
</div>
</div> </div>
<br />
<SfGrid DataSource="@Tasks" AllowPaging="true"> <SfGrid DataSource="@Tasks" AllowPaging="true">
<GridColumns> <GridColumns>
<GridColumn Field=@nameof(TaskSchedulerDto.Name) HeaderText="Nazwa"></GridColumn> <GridColumn Field=@nameof(TaskSchedulerDto.Name) HeaderText="Nazwa"></GridColumn>
<GridColumn Field=@nameof(TaskSchedulerDto.Path) HeaderText="Ścieżka"></GridColumn> <GridColumn Field=@nameof(TaskSchedulerDto.Path) HeaderText="Ścieżka"></GridColumn>
<GridColumn Field=@nameof(TaskSchedulerDto.CronOptions) HeaderText="CRON"></GridColumn> <GridColumn Field=@nameof(TaskSchedulerDto.CronOptions) HeaderText="CRON"></GridColumn>
@* <GridColumn Field=@nameof(TaskSchedulerDto.LastExecution) HeaderText="Ostatnie Uruchomienie"></GridColumn> *@ <GridColumn Field=@nameof(TaskSchedulerDto.LastExecution) HeaderText="Ostatnie Uruchomienie"></GridColumn>
@* <GridColumn Field=@nameof(TaskSchedulerDto.NextExecution) HeaderText="Następne Uruchomienie"></GridColumn> *@ <GridColumn Field=@nameof(TaskSchedulerDto.NextExecution) HeaderText="Następne Uruchomienie"></GridColumn>
</GridColumns> </GridColumns>
</SfGrid> </SfGrid>

View File

@@ -11,6 +11,6 @@ public class TaskSchedulerDto
public DateTime CreateDate { get; set; } public DateTime CreateDate { get; set; }
public DateTime ActiveFrom { get; set; } public DateTime ActiveFrom { get; set; }
public DateTime? ActiveUntil { get; set; } public DateTime? ActiveUntil { get; set; }
public DateTime? LastExecution { get; set; }
public JobData? JobDetails { get; set; } public DateTime? NextExecution { get; set; }
} }

View File

@@ -32,7 +32,16 @@ public class TaskSchedulerService(OrdersManagementDbContext context, IMapper map
public async Task<int> AddTaskScheduler(TaskSchedulerDto taskSchedulerDto) public async Task<int> AddTaskScheduler(TaskSchedulerDto taskSchedulerDto)
{ {
TaskScheduler taskScheduler = mapper.Map<TaskScheduler>(taskSchedulerDto); TaskScheduler taskScheduler = new TaskScheduler
{
Name = taskSchedulerDto.Name,
Path = taskSchedulerDto.Path,
RowPointer = Guid.NewGuid(),
CronOptions = taskSchedulerDto.CronOptions,
CreateDate = DateTime.Now,
ActiveFrom = DateTime.Now
};
context.TaskSchedulers.Add(taskScheduler); context.TaskSchedulers.Add(taskScheduler);
return await context.SaveChangesAsync(); return await context.SaveChangesAsync();
} }