add project details to CreateTimeRequestDetailsResponse and handle section validation

This commit is contained in:
2026-02-03 15:49:47 +03:30
parent cd2c770a9f
commit 77b5c8168e

View File

@@ -2,12 +2,14 @@ using GozareshgirProgramManager.Application._Common.Extensions;
using GozareshgirProgramManager.Application._Common.Interfaces; using GozareshgirProgramManager.Application._Common.Interfaces;
using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Application._Common.Models;
using GozareshgirProgramManager.Domain._Common; using GozareshgirProgramManager.Domain._Common;
using GozareshgirProgramManager.Domain._Common.Exceptions;
using GozareshgirProgramManager.Domain.ProjectAgg.Entities.Task.TaskSection; using GozareshgirProgramManager.Domain.ProjectAgg.Entities.Task.TaskSection;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Queries.CreateTimeRequestDetails; namespace GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Queries.CreateTimeRequestDetails;
public record CreateTimeRequestDetailsResponse(List<CreateTimeRequestDetailsRevision> Revisions); public record CreateTimeRequestDetailsResponse(List<CreateTimeRequestDetailsRevision> Revisions,
string ProjectName,string PhaseName,string SectionName,string SkillName);
public record CreateTimeRequestDetailsRevision(string Message, List<UploadedFileDto> Files,Guid Id,string CreationDate); public record CreateTimeRequestDetailsRevision(string Message, List<UploadedFileDto> Files,Guid Id,string CreationDate);
@@ -27,6 +29,18 @@ public class
public async Task<OperationResult<CreateTimeRequestDetailsResponse>> Handle(CreateTimeRequestDetailsQuery request, public async Task<OperationResult<CreateTimeRequestDetailsResponse>> Handle(CreateTimeRequestDetailsQuery request,
CancellationToken cancellationToken) 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 => var revisions = await _context.TaskSectionRevisions.Where(x =>
x.TaskSectionId == request.TaskSectionId && x.Status == RevisionReviewStatus.Pending).ToListAsync(cancellationToken: cancellationToken); 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()); return new CreateTimeRequestDetailsRevision(x.Message, filesDto,x.Id,x.CreationDate.ToFarsi());
}).ToList(); }).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<CreateTimeRequestDetailsResponse>.Success(res); return OperationResult<CreateTimeRequestDetailsResponse>.Success(res);
} }