Files
BackOffice.BFF/src/BackOffice.BFF.Application/PublicMessageCQ/Commands/PublishMessage/PublishMessageCommandHandler.cs

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