Merge branch 'Main' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Main
This commit is contained in:
@@ -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; }
|
||||
|
||||
@@ -71,6 +71,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,
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
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<CreateTimeRequestDetailsRevision> Revisions);
|
||||
public record CreateTimeRequestDetailsResponse(List<CreateTimeRequestDetailsRevision> Revisions,
|
||||
string ProjectName,string PhaseName,string SectionName,string SkillName);
|
||||
|
||||
public record CreateTimeRequestDetailsRevision(string Message, List<UploadedFileDto> Files);
|
||||
public record CreateTimeRequestDetailsRevision(string Message, List<UploadedFileDto> Files,Guid Id,string CreationDate);
|
||||
|
||||
public record CreateTimeRequestDetailsQuery(Guid TaskSectionId) : IBaseQuery<CreateTimeRequestDetailsResponse>;
|
||||
|
||||
@@ -26,11 +29,23 @@ public class
|
||||
public async Task<OperationResult<CreateTimeRequestDetailsResponse>> 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);
|
||||
|
||||
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,9 +55,11 @@ 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);
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user