// Output the processed response as a JSON string public string ProcessJson(IHttpRequest request) { var rc = false; var query = request.Url.Query; cumulus.LogDebugMessage("API tag: Processing API JSON tag request"); cumulus.LogDataMessage($"API tag: Source = {request.RemoteEndPoint} Input string = {query}"); var output = new StringBuilder("{", query.Length * 2); try { // remove leading "?" and split on "&" var input = new List <string>(query.Substring(1).Split('&')); var parms = new Dictionary <string, string>(); if (input[0] == "rc") { input.RemoveAt(0); rc = true; } foreach (var tag in input) { if (rc) { parms.Add("webtag", tag); parms.Add("rc", "y"); } var val = webtags.GetWebTagText(tag, parms); output.Append($"\"{tag}\":\"{val}\","); if (rc) { parms.Clear(); } } if (output.Length > 1) { // remove trailing "," output.Remove(output.Length - 1, 1); } output.Append('}'); cumulus.LogDataMessage("API tag: Output string = " + output); } catch (Exception ex) { cumulus.LogMessage($"API tag: Error - {ex.Message}"); output.Append($"\"ERROR\":\"{ex.Message}\"}}"); } return(output.ToString()); }
// Output the processed response as a JSON string public string ProcessJson(string query) { var rc = false; cumulus.LogDebugMessage("API tag: Processing API JSON tag request"); cumulus.LogDataMessage("API tag: Input string = " + query); // remove leading "?" and split on "&" var input = new List <string>(query.Substring(1).Split('&')); var parms = new Dictionary <string, string>(); if (input[0] == "rc") { input.RemoveAt(0); rc = true; } var output = new StringBuilder("{", query.Length * 2); foreach (var tag in input) { if (rc) { parms.Add("webtag", tag); parms.Add("rc", "y"); } var val = webtags.GetWebTagText(tag, parms); output.Append($"\"{tag}\":\"{val}\","); if (rc) { parms.Clear(); } } if (output.Length > 1) { // remove trailing "," output.Remove(output.Length - 1, 1); } output.Append("}"); cumulus.LogDataMessage("API tag: Output string = " + output); return(output.ToString()); }