/// <summary> /// Processes the request. /// </summary> /// <param name="context">The context.</param> /// <returns></returns> private Task ProcessRequestAsync(HttpListenerContext context) { if (context.Request.HttpMethod.ToUpperInvariant() != "GET") { return(WriteNotFoundAsync(context)); } var urlPath = context.Request.RawUrl.Substring(_prefixPath.Length) .ToLowerInvariant(); switch (urlPath) { case "/ping": return(WritePongAsync(context)); case "/": case "/status": return(WriteStatusAsync(context)); default: var providers = _queueStatusProviders.ToList(); var outputs = providers.Select(provider => provider.HandlePath(urlPath)).Where(output => output != null).ToList(); if (outputs.Count > 0) { return(WriteStringAsync(context, _serializer.ConvertToString(outputs), "application/json")); } break; } return(WriteNotFoundAsync(context)); }
/// <summary> /// Converts an input class to a string /// </summary> /// <typeparam name="T"></typeparam> /// <param name="data">The data to serialize</param> /// <returns></returns> public string ConvertToString <T>(T data) where T : class { using (_messageToStringTimer.NewContext()) { var result = _handler.ConvertToString(data); _resultSizeStringHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture)); return(result); } }
/// <summary> /// Gets the configuration. /// </summary> /// <returns></returns> private SystemEntry GetConfiguration() { const string name = "Configuration"; try { return(new SystemEntry(name, _serializer.ConvertToString(_options.Value))); } catch (Exception error) { SetError(error); return(new SystemEntry(name, error.ToString())); } }