Files
CMS/src/CMSMicroservice.Application/PublicMessageCQ/Queries/GetPublicMessage/GetPublicMessageQueryHandler.cs

47 lines
1.9 KiB
C#
Raw Normal View History

feat: Implement Public Message Management Commands and Queries - Add GetUserPackageStatusQueryValidator for user package status validation. - Create ArchiveMessageCommand and ArchiveMessageCommandHandler for archiving public messages. - Implement ArchiveMessageCommandValidator to validate message ID. - Introduce PublishMessageCommand and PublishMessageCommandHandler for publishing messages. - Add PublishMessageCommandValidator for validating publish message requests. - Implement GetPublicMessageQuery and GetPublicMessageQueryHandler for retrieving public messages. - Create GetPublicMessageQueryValidator for validating public message requests. - Add ApplyDiscountToOrderCommand and ApplyDiscountToOrderCommandHandler for applying discounts to orders. - Implement ApplyDiscountToOrderCommandValidator for validating discount application requests. - Create UpdateOrderStatusCommand and UpdateOrderStatusCommandHandler for changing order statuses. - Implement UpdateOrderStatusCommandValidator for validating order status updates. - Add CalculateOrderPVQuery and CalculateOrderPVQueryHandler for calculating order PV. - Implement CalculateOrderPVQueryValidator for validating PV calculation requests. - Create GetOrdersByDateRangeQuery and GetOrdersByDateRangeQueryHandler for retrieving orders by date range. - Implement GetOrdersByDateRangeQueryValidator for validating date range queries. - Add PublicMessage entity to represent public messages in the system. - Implement PublicMessageService for handling public message operations via gRPC.
2025-12-04 03:43:19 +03:30
using CMSMicroservice.Application.Common.Interfaces;
namespace CMSMicroservice.Application.PublicMessageCQ.Queries.GetPublicMessage;
public class GetPublicMessageQueryHandler : IRequestHandler<GetPublicMessageQuery, PublicMessageDto?>
{
private readonly IApplicationDbContext _context;
public GetPublicMessageQueryHandler(IApplicationDbContext context)
{
_context = context;
}
public async Task<PublicMessageDto?> Handle(GetPublicMessageQuery request, CancellationToken cancellationToken)
{
// TODO: پیاده‌سازی دریافت پیام
// 1. پیدا کردن پیام:
// - var message = await _context.PublicMessages
// .AsNoTracking()
// .FirstOrDefaultAsync(m => m.Id == request.MessageId, cancellationToken)
//
// 2. چک null:
// - if (message == null) return null
//
// 3. Map به DTO:
// - return new PublicMessageDto {
// Id = message.Id,
// Title = message.Title,
// Content = message.Content,
// MessageType = message.MessageType,
// IsActive = message.IsActive,
// IsArchived = message.IsArchived,
// StartDate = message.StartDate,
// EndDate = message.EndDate,
// PublishedAt = message.PublishedAt,
// ArchivedAt = message.ArchivedAt,
// CreatedAt = message.CreatedAt,
// LastModifiedAt = message.LastModifiedAt
// }
//
// نکته: این query برای Admin است و همه پیام‌ها (حتی آرشیو شده) را برمی‌گرداند
// نکته: برای کاربران عادی از GetActiveMessages استفاده می‌شود
throw new NotImplementedException("GetPublicMessage needs implementation");
}
}