using CMSMicroservice.Application.Common.Interfaces; namespace CMSMicroservice.Application.PublicMessageCQ.Queries.GetPublicMessage; public class GetPublicMessageQueryHandler : IRequestHandler { private readonly IApplicationDbContext _context; public GetPublicMessageQueryHandler(IApplicationDbContext context) { _context = context; } public async Task 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"); } }