37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
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<PublishMessageCommand, BffProto.PublishMessageResponse>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
|
|
public PublishMessageCommandHandler(IApplicationContractContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<BffProto.PublishMessageResponse> 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
|
|
};
|
|
}
|
|
}
|
|
|