From cd2c770a9f76c90186f7054ff5fdbaef24fea07c Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 3 Feb 2026 15:17:39 +0330 Subject: [PATCH 1/3] add parameter in get --- .../CreateTimeRequestDetailsQuery.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs index 6a2c7e18..0657ce5c 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs @@ -1,6 +1,7 @@ using GozareshgirProgramManager.Application._Common.Extensions; using GozareshgirProgramManager.Application._Common.Interfaces; using GozareshgirProgramManager.Application._Common.Models; +using GozareshgirProgramManager.Domain._Common; using GozareshgirProgramManager.Domain.ProjectAgg.Entities.Task.TaskSection; using Microsoft.EntityFrameworkCore; @@ -8,7 +9,7 @@ namespace GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests. public record CreateTimeRequestDetailsResponse(List Revisions); -public record CreateTimeRequestDetailsRevision(string Message, List Files); +public record CreateTimeRequestDetailsRevision(string Message, List Files,Guid Id,string CreationDate); public record CreateTimeRequestDetailsQuery(Guid TaskSectionId) : IBaseQuery; @@ -30,7 +31,7 @@ public class x.TaskSectionId == request.TaskSectionId && x.Status == RevisionReviewStatus.Pending).ToListAsync(cancellationToken: cancellationToken); var fileIds = revisions.SelectMany(x => x.Files) - .Select(x => x.Id).ToList(); + .Select(x => x.FileId).ToList(); var files =await _context.UploadedFiles .Where(x => fileIds.Contains(x.Id)).ToListAsync(cancellationToken: cancellationToken); @@ -40,7 +41,8 @@ public class var selectFileIds = x.Files.Select(f => f.FileId).ToList(); var filesDto = files.Where(f => selectFileIds.Contains(f.Id)) .Select(f => f.ToDto()).ToList(); - return new CreateTimeRequestDetailsRevision(x.Message, filesDto); + + return new CreateTimeRequestDetailsRevision(x.Message, filesDto,x.Id,x.CreationDate.ToFarsi()); }).ToList(); var res = new CreateTimeRequestDetailsResponse(resItem); From 77b5c8168e358ad90d1c7b206becf1726a04ff44 Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 3 Feb 2026 15:49:47 +0330 Subject: [PATCH 2/3] add project details to CreateTimeRequestDetailsResponse and handle section validation --- .../CreateTimeRequestDetailsQuery.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs index 0657ce5c..1632c11f 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskSectionTimeRequests/Queries/CreateTimeRequestDetails/CreateTimeRequestDetailsQuery.cs @@ -2,12 +2,14 @@ using GozareshgirProgramManager.Application._Common.Extensions; using GozareshgirProgramManager.Application._Common.Interfaces; using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Domain._Common; +using GozareshgirProgramManager.Domain._Common.Exceptions; using GozareshgirProgramManager.Domain.ProjectAgg.Entities.Task.TaskSection; using Microsoft.EntityFrameworkCore; namespace GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Queries.CreateTimeRequestDetails; -public record CreateTimeRequestDetailsResponse(List Revisions); +public record CreateTimeRequestDetailsResponse(List Revisions, + string ProjectName,string PhaseName,string SectionName,string SkillName); public record CreateTimeRequestDetailsRevision(string Message, List Files,Guid Id,string CreationDate); @@ -27,6 +29,18 @@ public class public async Task> Handle(CreateTimeRequestDetailsQuery request, CancellationToken cancellationToken) { + var section =await _context.TaskSections + .Include(x => x.Task) + .ThenInclude(x => x.Phase) + .ThenInclude(x => x.Project) + .Include(x => x.Skill) + .FirstOrDefaultAsync(x => x.Id == request.TaskSectionId, cancellationToken: cancellationToken); + + if (section == null) + { + throw new BadRequestException("بخش فرعی نامعتبر است"); + } + var revisions = await _context.TaskSectionRevisions.Where(x => x.TaskSectionId == request.TaskSectionId && x.Status == RevisionReviewStatus.Pending).ToListAsync(cancellationToken: cancellationToken); @@ -44,7 +58,8 @@ public class return new CreateTimeRequestDetailsRevision(x.Message, filesDto,x.Id,x.CreationDate.ToFarsi()); }).ToList(); - var res = new CreateTimeRequestDetailsResponse(resItem); + var res = new CreateTimeRequestDetailsResponse(resItem,section.Task.Phase.Project.Name,section.Task.Phase.Name,section.Task.Name, + section.Skill!.Name); return OperationResult.Success(res); } From db0047d3d3e60e835046739f529054e13fff9ddd Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 3 Feb 2026 17:54:32 +0330 Subject: [PATCH 3/3] set time get details --- .../Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQuery.cs | 1 + .../ProjectSetTimeDetails/ProjectSetTimeDetailsQueryHandler.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQuery.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQuery.cs index a3ac883d..3f666afc 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQuery.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectSetTimeDetails/ProjectSetTimeDetailsQuery.cs @@ -26,6 +26,7 @@ public record ProjectSetTimeResponseSkill public class ProjectSetTimeResponseSectionAdditionalTime { + public Guid Id { get; set; } public int Hours { get; init; } public int Minutes { get; init; } public string Description { get; init; } 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 b3600159..8e823463 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 @@ -70,6 +70,7 @@ public class ProjectSetTimeDetailsQueryHandler AdditionalTimes = section?.AdditionalTimes .Select(x => new ProjectSetTimeResponseSectionAdditionalTime { + Id = x.Id, Description = x.Reason ?? "", Hours = (int)x.Hours.TotalHours, Minutes = x.Hours.Minutes,