From 90b2fd2eab5ae2317f42bf72bde252f7e63b6266 Mon Sep 17 00:00:00 2001 From: mahan Date: Wed, 14 Jan 2026 10:13:57 +0330 Subject: [PATCH 1/2] add order for skills in set time --- .../ProjectSetTimeDetailsQueryHandler.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 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 aee31370..b3600159 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 @@ -56,6 +56,7 @@ public class ProjectSetTimeDetailsQueryHandler var skills = await _context.Skills .AsNoTracking() + .OrderBy(x=>x.CreationDate) .ToListAsync(cancellationToken); var res = new ProjectSetTimeResponse( @@ -84,7 +85,7 @@ public class ProjectSetTimeDetailsQueryHandler UserId = section?.OriginalAssignedUserId ?? 0, SkillId = skill.Id, }; - }).OrderBy(x => x.SkillId).ToList(), + }).ToList(), task.Id, level); @@ -114,6 +115,7 @@ public class ProjectSetTimeDetailsQueryHandler var skills = await _context.Skills .AsNoTracking() + .OrderBy(x=>x.CreationDate) .ToListAsync(cancellationToken); var res = new ProjectSetTimeResponse( @@ -135,7 +137,7 @@ public class ProjectSetTimeDetailsQueryHandler UserId = section?.UserId ?? 0, SkillId = skill.Id, }; - }).OrderBy(x => x.SkillId).ToList(), + }).ToList(), phase.Id, level); @@ -165,6 +167,7 @@ public class ProjectSetTimeDetailsQueryHandler var skills = await _context.Skills .AsNoTracking() + .OrderBy(x=>x.CreationDate) .ToListAsync(cancellationToken); var res = new ProjectSetTimeResponse( @@ -186,7 +189,7 @@ public class ProjectSetTimeDetailsQueryHandler UserId = section?.UserId ?? 0, SkillId = skill.Id, }; - }).OrderBy(x => x.SkillId).ToList(), + }).ToList(), project.Id, level); From 73e6681baa8d9feb91b1fc7a49333c43d3e9ceea Mon Sep 17 00:00:00 2001 From: mahan Date: Wed, 14 Jan 2026 10:46:44 +0330 Subject: [PATCH 2/2] add message type to search query --- .../TaskChat/Queries/GetMessages/GetMessagesQuery.cs | 9 ++++++++- .../Controllers/ProgramManager/TaskChatController.cs | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskChat/Queries/GetMessages/GetMessagesQuery.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskChat/Queries/GetMessages/GetMessagesQuery.cs index fbc3e3b8..d4e240b4 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskChat/Queries/GetMessages/GetMessagesQuery.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/TaskChat/Queries/GetMessages/GetMessagesQuery.cs @@ -1,6 +1,7 @@ using GozareshgirProgramManager.Application._Common.Interfaces; using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Application.Modules.TaskChat.DTOs; +using GozareshgirProgramManager.Domain.TaskChatAgg.Enums; using MediatR; using Microsoft.EntityFrameworkCore; @@ -8,6 +9,7 @@ namespace GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMess public record GetMessagesQuery( Guid TaskId, + MessageType? MessageType, int Page = 1, int PageSize = 50 ) : IBaseQuery>; @@ -34,7 +36,12 @@ public class GetMessagesQueryHandler : IBaseQueryHandler m.TaskId == request.TaskId && !m.IsDeleted) .Include(m => m.ReplyToMessage) - .OrderBy(m => m.CreationDate); + .OrderBy(m => m.CreationDate).AsQueryable(); + + if (request.MessageType.HasValue) + { + query = query.Where(m => m.MessageType == request.MessageType.Value); + } var totalCount = await query.CountAsync(cancellationToken); diff --git a/ServiceHost/Areas/Admin/Controllers/ProgramManager/TaskChatController.cs b/ServiceHost/Areas/Admin/Controllers/ProgramManager/TaskChatController.cs index 39983e00..8d579bfc 100644 --- a/ServiceHost/Areas/Admin/Controllers/ProgramManager/TaskChatController.cs +++ b/ServiceHost/Areas/Admin/Controllers/ProgramManager/TaskChatController.cs @@ -8,6 +8,7 @@ using GozareshgirProgramManager.Application.Modules.TaskChat.DTOs; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMessages; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetPinnedMessages; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.SearchMessages; +using GozareshgirProgramManager.Domain.TaskChatAgg.Enums; using MediatR; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; @@ -30,15 +31,17 @@ public class TaskChatController : ProgramManagerBaseController /// دریافت لیست پیام‌های یک تسک /// /// شناسه تسک + /// نوع پیام /// صفحه (پیش‌فرض: 1) /// تعداد در هر صفحه (پیش‌فرض: 50) [HttpGet("{taskId:guid}/messages")] public async Task>>> GetMessages( Guid taskId, + [FromQuery] MessageType? messageType, [FromQuery] int page = 1, [FromQuery] int pageSize = 50) { - var query = new GetMessagesQuery(taskId, page, pageSize); + var query = new GetMessagesQuery(taskId,messageType, page, pageSize); var result = await _mediator.Send(query); return result; }