public static string SerializeToString <T>(
     this IElasticsearchSerializer serializer,
     T data,
     IMemoryStreamFactory memoryStreamFactory = null,
     SerializationFormatting formatting       = SerializationFormatting.Indented
     ) =>
 serializer.SerializeToBytes(data, memoryStreamFactory, formatting).Utf8String();
예제 #2
0
        internal static void SerializeUsingWriter <T>(this IElasticsearchSerializer serializer, ref JsonWriter writer, T body, IConnectionConfigurationValues settings, SerializationFormatting formatting)
        {
            if (serializer is IInternalSerializer s && s.TryGetJsonFormatter(out var formatterResolver))
            {
                JsonSerializer.Serialize(ref writer, body, formatterResolver);
                return;
            }

            var memoryStreamFactory = settings.MemoryStreamFactory;
            var bodyBytes           = serializer.SerializeToBytes(body, memoryStreamFactory, formatting);

            writer.WriteRaw(bodyBytes);
        }
예제 #3
0
        public static ConnectionSettings CreateConnectionSettings(
            object response,
            int statusCode = 200,
            Func <ConnectionSettings, ConnectionSettings> modifySettings = null,
            string contentType  = RequestData.MimeType,
            Exception exception = null,
            IElasticsearchSerializer serializer = null
            )
        {
            serializer ??= TestClient.Default.RequestResponseSerializer;
            byte[] responseBytes;
            switch (response)
            {
            case string s:
                responseBytes = Encoding.UTF8.GetBytes(s);
                break;

            case byte[] b:
                responseBytes = b;
                break;

            default:
            {
                responseBytes = contentType == RequestData.MimeType
                                                ? serializer.SerializeToBytes(response, TestClient.Default.ConnectionSettings.MemoryStreamFactory)
                                                : Encoding.UTF8.GetBytes(response.ToString());
                break;
            }
            }

            var connection      = new InMemoryConnection(responseBytes, statusCode, exception, contentType);
            var connectionPool  = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
            var defaultSettings = new ConnectionSettings(connectionPool, connection)
                                  .DefaultIndex("default-index");
            var settings = modifySettings != null?modifySettings(defaultSettings) : defaultSettings;

            return(settings);
        }
 public static string SerializeToString(this IElasticsearchSerializer serializer, object data, SerializationFormatting formatting = SerializationFormatting.Indented) =>
 serializer.SerializeToBytes(data, formatting).Utf8String();