47 lines
1.9 KiB
C#
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");
|
||
|
|
}
|
||
|
|
}
|