private static bool AssignKnownHttpKeys()

in src/Elastic.Extensions.Logging.Common/LogEventBuilderExtensions.cs [60:108]


	private static bool AssignKnownHttpKeys(LogEvent logEvent, string key, object value)
	{
		switch (key)
		{
			case "RequestId" when value is string requestId:
				logEvent.Http ??= new Http();
				logEvent.Http.RequestId = requestId;
				return true;
			case "RequestPath" when value is string path:
				logEvent.Url ??= new Url();
				logEvent.Url.Path = path;
				return true;
			// ReSharper disable once UnusedVariable
			case "Protocol" when value is string protocol:
				// TODO protocol
				//logEvent.Http ??= new Http();
				//logEvent.Http. = requestId;
				return true;
			case "Method" when value is string method:
				logEvent.Http ??= new Http();
				logEvent.Http.RequestMethod = method;
				return true;
			case "ContentType" when value is string contentType:
				logEvent.Http ??= new Http();
				logEvent.Http.RequestMimeType = contentType;
				return true;
			case "ContentLength" when value is string contentLength:
				logEvent.Http ??= new Http();
				logEvent.Http.RequestBytes = long.TryParse(contentLength, out var l) ? l : (long?)null;
				return true;
			case "Scheme" when value is string scheme:
				logEvent.Url ??= new Url();
				logEvent.Url.Scheme = scheme;
				return true;
			case "Host" when value is string host:
				logEvent.Url ??= new Url();
				logEvent.Url.Domain = host;
				return true;
			case "Path":
			case "PathBase":
				//covered by 'RequestPath'
				return true;
			case "QueryString" when value is string qs:
				logEvent.Url ??= new Url();
				logEvent.Url.Query = qs;
				return true;
			default: return false;
		}
	}