feat: refactor week number handling to use WeekDefinitionId across multiple entities and queries
This commit is contained in:
+12
-2
@@ -5,10 +5,14 @@ namespace CMSMicroservice.Application.CommissionCQ.Queries.GetWorkerStatus;
|
||||
public class GetWorkerStatusQueryHandler : IRequestHandler<GetWorkerStatusQuery, GetWorkerStatusResponseDto>
|
||||
{
|
||||
private readonly IApplicationDbContext _context;
|
||||
private readonly IWeekDefinitionRepository _weekDefinitionRepository;
|
||||
|
||||
public GetWorkerStatusQueryHandler(IApplicationDbContext context)
|
||||
public GetWorkerStatusQueryHandler(
|
||||
IApplicationDbContext context,
|
||||
IWeekDefinitionRepository weekDefinitionRepository)
|
||||
{
|
||||
_context = context;
|
||||
_weekDefinitionRepository = weekDefinitionRepository;
|
||||
}
|
||||
|
||||
public async Task<GetWorkerStatusResponseDto> Handle(
|
||||
@@ -19,13 +23,19 @@ public class GetWorkerStatusQueryHandler : IRequestHandler<GetWorkerStatusQuery,
|
||||
// فعلاً mock data برمیگرداند
|
||||
|
||||
await Task.CompletedTask;
|
||||
|
||||
var currentWeek = _weekDefinitionRepository.GetCurrentWeek();
|
||||
var currentWeekNumber = currentWeek != null
|
||||
? $"{currentWeek.GregorianYear}-W{currentWeek.GregorianWeekNumber:D2}"
|
||||
: null;
|
||||
|
||||
return new GetWorkerStatusResponseDto
|
||||
{
|
||||
IsRunning = false,
|
||||
IsEnabled = true,
|
||||
CurrentExecutionId = null,
|
||||
CurrentWeekNumber = null,
|
||||
CurrentWeekNumber = currentWeekNumber,
|
||||
CurrentWeekDisplayName = currentWeek?.DisplayName,
|
||||
CurrentStep = "Idle",
|
||||
LastRunAt = DateTime.Now.AddHours(-24),
|
||||
NextScheduledRun = DateTime.Now.AddDays(7),
|
||||
|
||||
+1
@@ -6,6 +6,7 @@ public class GetWorkerStatusResponseDto
|
||||
public bool IsEnabled { get; set; }
|
||||
public string? CurrentExecutionId { get; set; }
|
||||
public string? CurrentWeekNumber { get; set; }
|
||||
public string? CurrentWeekDisplayName { get; set; }
|
||||
public string? CurrentStep { get; set; } // "Balances" | "Pool" | "Payouts" | "Idle"
|
||||
public DateTime? LastRunAt { get; set; }
|
||||
public DateTime? NextScheduledRun { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user