mirror of
https://github.com/bitwarden/server.git
synced 2025-04-18 03:28:15 -05:00

* [PM-17562] Refactor to Support Multiple Message Payloads * Change signature as per PR suggestion
46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using System.Text.Json;
|
|
using Azure.Messaging.ServiceBus;
|
|
using Bit.Core.Models.Data;
|
|
using Bit.Core.Services;
|
|
using Bit.Core.Settings;
|
|
|
|
namespace Bit.Core.AdminConsole.Services.Implementations;
|
|
|
|
public class AzureServiceBusEventWriteService : IEventWriteService, IAsyncDisposable
|
|
{
|
|
private readonly ServiceBusClient _client;
|
|
private readonly ServiceBusSender _sender;
|
|
|
|
public AzureServiceBusEventWriteService(GlobalSettings globalSettings)
|
|
{
|
|
_client = new ServiceBusClient(globalSettings.EventLogging.AzureServiceBus.ConnectionString);
|
|
_sender = _client.CreateSender(globalSettings.EventLogging.AzureServiceBus.TopicName);
|
|
}
|
|
|
|
public async Task CreateAsync(IEvent e)
|
|
{
|
|
var message = new ServiceBusMessage(JsonSerializer.SerializeToUtf8Bytes(e))
|
|
{
|
|
ContentType = "application/json"
|
|
};
|
|
|
|
await _sender.SendMessageAsync(message);
|
|
}
|
|
|
|
public async Task CreateManyAsync(IEnumerable<IEvent> events)
|
|
{
|
|
var message = new ServiceBusMessage(JsonSerializer.SerializeToUtf8Bytes(events))
|
|
{
|
|
ContentType = "application/json"
|
|
};
|
|
|
|
await _sender.SendMessageAsync(message);
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
await _sender.DisposeAsync();
|
|
await _client.DisposeAsync();
|
|
}
|
|
}
|