// Copyright © WireMock.Net #if PROTOBUF using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using JsonConverter.Abstractions; using ProtoBufJsonConverter; using ProtoBufJsonConverter.Models; namespace WireMock.Util; internal static class ProtoBufUtils { internal static async Task GetProtoBufMessageWithHeaderAsync( IReadOnlyList? protoDefinitions, string? messageType, object? value, IJsonConverter? jsonConverter = null, CancellationToken cancellationToken = default ) { if (protoDefinitions == null || string.IsNullOrWhiteSpace(messageType) || value is null) { return []; } var resolver = new WireMockProtoFileResolver(protoDefinitions); var request = new ConvertToProtoBufRequest(protoDefinitions[0], messageType!, value, true) .WithProtoFileResolver(resolver); return await SingletonFactory .GetInstance() .ConvertAsync(request, cancellationToken).ConfigureAwait(false); } } #endif