From 6f64ee1ce48f75655cd3f2a024a50eb3f9ec0d3f Mon Sep 17 00:00:00 2001 From: mahan Date: Sun, 4 Jan 2026 13:01:43 +0330 Subject: [PATCH] refactor: streamline ProjectSetTimeDetailsQueryHandler to enhance skill and user data retrieval --- .../ProjectSetTimeDetailsQueryHandler.cs | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQueryHandler.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQueryHandler.cs index 79271ee4..a41c4168 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQueryHandler.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQueryHandler.cs @@ -40,22 +40,20 @@ public class ProjectSetTimeDetailsQueryHandler .Where(x => userIds.Contains(x.Id)) .AsNoTracking() .ToListAsync(cancellationToken); - var skillIds = task.Sections.Select(x => x.SkillId) - .Distinct().ToList(); var skills = await _context.Skills - .Where(x => skillIds.Contains(x.Id)) .AsNoTracking() .ToListAsync(cancellationToken); var res = new ProjectSetTimeResponse( - task.Sections.Select(ts => + skills.Select(skill => { - var user = users.FirstOrDefault(x => x.Id == ts.OriginalAssignedUserId); - var skill = skills.FirstOrDefault(x => x.Id == ts.SkillId); + var section = task.Sections + .FirstOrDefault(x => x.SkillId == skill.Id); + var user = users.FirstOrDefault(x => x.Id == section?.OriginalAssignedUserId); return new ProjectSetTimeResponseSkill { - AdditionalTimes = ts.AdditionalTimes + AdditionalTimes = section?.AdditionalTimes .Select(x => new ProjectSetTimeResponseSectionAdditionalTime { Description = x.Reason ?? "", @@ -63,16 +61,16 @@ public class ProjectSetTimeDetailsQueryHandler Minutes = x.Hours.Minutes, CreationDate = x.CreationDate.ToFarsi() - }).ToList(), - InitCreationTime = ts.CreationDate.ToFarsi(), + }).OrderBy(x=>x.CreationDate).ToList()??[], + InitCreationTime = section?.CreationDate.ToFarsi()??"", SkillName = skill?.Name ?? "", UserFullName = user?.FullName ?? "", - SectionId = ts.Id, - InitialDescription = ts.InitialDescription ?? "", - InitialHours = (int)ts.InitialEstimatedHours.TotalHours, - InitialMinutes = ts.InitialEstimatedHours.Minutes, - UserId = ts.OriginalAssignedUserId, - SkillId = ts.SkillId, + SectionId = section?.Id??Guid.Empty, + InitialDescription = section?.InitialDescription ?? "", + InitialHours = (int)(section?.InitialEstimatedHours.TotalHours ?? 0), + InitialMinutes = section?.InitialEstimatedHours.Minutes??0, + UserId = section?.OriginalAssignedUserId??0, + SkillId = task.Id, }; }).OrderBy(x=>x.SkillId).ToList(), task.Id,