using BackOffice.BFF.Application.Common.Interfaces; using MediatR; using BffProto = BackOffice.BFF.PublicMessage.Protobuf; using CmsProto = CMSMicroservice.Protobuf.Protos; namespace BackOffice.BFF.Application.PublicMessageCQ.Commands.PublishMessage; public class PublishMessageCommandHandler : IRequestHandler { private readonly IApplicationContractContext _context; public PublishMessageCommandHandler(IApplicationContractContext context) { _context = context; } public async Task Handle(PublishMessageCommand request, CancellationToken cancellationToken) { var cmsRequest = new CmsProto.PublishMessageRequest { MessageId = request.MessageId }; var cmsResponse = await _context.PublicMessages.PublishMessageAsync( cmsRequest, cancellationToken: cancellationToken); return new BffProto.PublishMessageResponse { Success = cmsResponse.Success, Message = cmsResponse.Message, PublishedAt = cmsResponse.PublishedAt }; } }