From 7c611825a4b863626478352d4ee8e8908b1e226c Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 8 Jan 2026 12:09:18 +0330 Subject: [PATCH] feat: refactor task priority handling to use ProjectTaskPriority across commands, DTOs, and repositories --- .../Commands/AddTaskToPhase/AddTaskToPhaseCommand.cs | 2 +- .../ChangeTaskPriority/ChangeTaskPriorityCommand.cs | 8 ++++---- .../Projects/Queries/GetProjectsList/GetTaskListDto.cs | 2 +- .../ProjectBoardList/ProjectBoardListQueryHandler.cs | 1 + .../Queries/ProjectBoardList/ProjectBoardListResponse.cs | 1 + .../ProjectAgg/Entities/ProjectTask.cs | 6 +++--- .../Enums/{TaskPriority.cs => ProjectTaskPriority.cs} | 2 +- .../ProjectAgg/Events/ProjectEvents.cs | 2 +- .../ProjectAgg/Repositories/IProjectTaskRepository.cs | 2 +- .../Persistence/Repositories/ProjectTaskRepository.cs | 2 +- 10 files changed, 15 insertions(+), 13 deletions(-) rename ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/{TaskPriority.cs => ProjectTaskPriority.cs} (92%) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/AddTaskToPhase/AddTaskToPhaseCommand.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/AddTaskToPhase/AddTaskToPhaseCommand.cs index ba82f57c..1373f8a6 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/AddTaskToPhase/AddTaskToPhaseCommand.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/AddTaskToPhase/AddTaskToPhaseCommand.cs @@ -10,7 +10,7 @@ public record AddTaskToPhaseCommand( Guid PhaseId, string Name, string? Description = null, - TaskPriority Priority = TaskPriority.Medium, + ProjectTaskPriority Priority = ProjectTaskPriority.Medium, int OrderIndex = 0, DateTime? DueDate = null ) : IBaseCommand; diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/ChangeTaskPriority/ChangeTaskPriorityCommand.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/ChangeTaskPriority/ChangeTaskPriorityCommand.cs index a1886b56..d6ea7e1e 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/ChangeTaskPriority/ChangeTaskPriorityCommand.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Commands/ChangeTaskPriority/ChangeTaskPriorityCommand.cs @@ -9,7 +9,7 @@ namespace GozareshgirProgramManager.Application.Modules.Projects.Commands.Change public record ChangeTaskPriorityCommand( Guid Id, ProjectHierarchyLevel Level, - TaskPriority Priority + ProjectTaskPriority Priority ) : IBaseCommand; public class ChangeTaskPriorityCommandHandler : IBaseCommandHandler @@ -47,7 +47,7 @@ public class ChangeTaskPriorityCommandHandler : IBaseCommandHandler HandleTaskLevelAsync(Guid taskId, TaskPriority priority, CancellationToken ct) + private async Task HandleTaskLevelAsync(Guid taskId, ProjectTaskPriority priority, CancellationToken ct) { var task = await _taskRepository.GetByIdAsync(taskId, ct); if (task is null) @@ -63,7 +63,7 @@ public class ChangeTaskPriorityCommandHandler : IBaseCommandHandler HandlePhaseLevelAsync(Guid phaseId, TaskPriority priority, CancellationToken ct) + private async Task HandlePhaseLevelAsync(Guid phaseId, ProjectTaskPriority priority, CancellationToken ct) { var phase = await _phaseRepository.GetWithTasksAsync(phaseId); if (phase is null) @@ -83,7 +83,7 @@ public class ChangeTaskPriorityCommandHandler : IBaseCommandHandler HandleProjectLevelAsync(Guid projectId, TaskPriority priority, CancellationToken ct) + private async Task HandleProjectLevelAsync(Guid projectId, ProjectTaskPriority priority, CancellationToken ct) { var project = await _projectRepository.GetWithFullHierarchyAsync(projectId); if (project is null) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/GetProjectsList/GetTaskListDto.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/GetProjectsList/GetTaskListDto.cs index 62b7e26e..0661cdb1 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/GetProjectsList/GetTaskListDto.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/GetProjectsList/GetTaskListDto.cs @@ -15,7 +15,7 @@ public class GetTaskDto // Task-specific fields public TimeSpan SpentTime { get; init; } public TimeSpan RemainingTime { get; init; } - public TaskPriority Priority { get; set; } + public ProjectTaskPriority Priority { get; set; } public List Sections { get; init; } } diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectBoardList/ProjectBoardListQueryHandler.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectBoardList/ProjectBoardListQueryHandler.cs index a082f648..00b49401 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectBoardList/ProjectBoardListQueryHandler.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectBoardList/ProjectBoardListQueryHandler.cs @@ -105,6 +105,7 @@ public class ProjectBoardListQueryHandler : IBaseQueryHandler(); - Priority = TaskPriority.Medium; + Priority = ProjectTaskPriority.Medium; AddDomainEvent(new TaskCreatedEvent(Id, phaseId, name)); } @@ -30,7 +30,7 @@ public class ProjectTask : ProjectHierarchyNode // Task-specific properties public Enums.TaskStatus Status { get; private set; } = Enums.TaskStatus.NotStarted; - public TaskPriority Priority { get; private set; } + public ProjectTaskPriority Priority { get; private set; } public DateTime? StartDate { get; private set; } public DateTime? EndDate { get; private set; } public DateTime? DueDate { get; private set; } @@ -119,7 +119,7 @@ public class ProjectTask : ProjectHierarchyNode AddDomainEvent(new TaskStatusUpdatedEvent(Id, status)); } - public void SetPriority(TaskPriority priority) + public void SetPriority(ProjectTaskPriority priority) { Priority = priority; AddDomainEvent(new TaskPriorityUpdatedEvent(Id, priority)); diff --git a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/TaskPriority.cs b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/ProjectTaskPriority.cs similarity index 92% rename from ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/TaskPriority.cs rename to ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/ProjectTaskPriority.cs index 13ccd784..2a2ab36f 100644 --- a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/TaskPriority.cs +++ b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Enums/ProjectTaskPriority.cs @@ -3,7 +3,7 @@ namespace GozareshgirProgramManager.Domain.ProjectAgg.Enums; /// /// اولویت تسک /// -public enum TaskPriority +public enum ProjectTaskPriority { /// /// پایین diff --git a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Events/ProjectEvents.cs b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Events/ProjectEvents.cs index 155fec66..64f21ef9 100644 --- a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Events/ProjectEvents.cs +++ b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Events/ProjectEvents.cs @@ -78,7 +78,7 @@ public record TaskStatusUpdatedEvent(Guid TaskId, TaskStatus Status) : IDomainEv public DateTime OccurredOn { get; init; } = DateTime.Now; } -public record TaskPriorityUpdatedEvent(Guid TaskId, TaskPriority Priority) : IDomainEvent +public record TaskPriorityUpdatedEvent(Guid TaskId, ProjectTaskPriority Priority) : IDomainEvent { public DateTime OccurredOn { get; init; } = DateTime.Now; } diff --git a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Repositories/IProjectTaskRepository.cs b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Repositories/IProjectTaskRepository.cs index 8b0ff688..9894a764 100644 --- a/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Repositories/IProjectTaskRepository.cs +++ b/ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Repositories/IProjectTaskRepository.cs @@ -36,7 +36,7 @@ public interface IProjectTaskRepository : IRepository /// /// Get tasks by priority /// - Task> GetByPriorityAsync(ProjectAgg.Enums.TaskPriority priority); + Task> GetByPriorityAsync(ProjectAgg.Enums.ProjectTaskPriority priority); /// /// Get tasks assigned to user diff --git a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/ProjectTaskRepository.cs b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/ProjectTaskRepository.cs index 4e09e8cb..cbaa79fe 100644 --- a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/ProjectTaskRepository.cs +++ b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/ProjectTaskRepository.cs @@ -58,7 +58,7 @@ public class ProjectTaskRepository : RepositoryBase, IProject .ToListAsync(); } - public Task> GetByPriorityAsync(TaskPriority priority) + public Task> GetByPriorityAsync(ProjectTaskPriority priority) { return _context.ProjectTasks .Where(t => t.Priority == priority)