Files
CMS/src/CMSMicroservice.Application/PublicMessageCQ/Queries/GetPublicMessage/GetPublicMessageQueryHandler.cs
masoodafar-web ba6d74fe35 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

47 lines
1.9 KiB
C#

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");
}
}