From 73e6681baa8d9feb91b1fc7a49333c43d3e9ceea Mon Sep 17 00:00:00 2001 From: mahan Date: Wed, 14 Jan 2026 10:46:44 +0330 Subject: [PATCH] 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; }