application/json
{ "error": "query is required" }
@("https://api.loganalytics.azure.com/v1/workspaces/" + (string)context.Variables["logAnalyticsWorkspaceId"] + "/query")
POST
@("Bearer " + (string)context.Variables["logsToken"])
application/json
@{
var input = (JObject)context.Variables["requestBody"];
var body = new JObject();
body["query"] = input["query"];
body["timespan"] = input["timespan"] != null ? input["timespan"] : "P1D";
return body.ToString();
}
();
var tables = (JArray)result["tables"];
var table = (JObject)tables[0];
var columns = (JArray)table["columns"];
var rows = (JArray)table["rows"];
var lines = new List();
var headerFields = new List();
foreach (JObject col in columns)
{
string v = (string)col["name"];
if (v == null) { v = ""; }
string escaped = v.Replace("\"", "\"\"");
if (escaped.Contains(",") || escaped.Contains("\"") || escaped.Contains("\n") || escaped.Contains("\r"))
{
escaped = "\"" + escaped + "\"";
}
headerFields.Add(escaped);
}
lines.Add(string.Join(",", headerFields));
foreach (JArray row in rows)
{
var rowFields = new List();
foreach (var cell in row)
{
string v = cell.Type == JTokenType.Null ? "" : cell.ToString();
string escaped = v.Replace("\"", "\"\"");
if (escaped.Contains(",") || escaped.Contains("\"") || escaped.Contains("\n") || escaped.Contains("\r"))
{
escaped = "\"" + escaped + "\"";
}
rowFields.Add(escaped);
}
lines.Add(string.Join(",", rowFields));
}
return string.Join("\r\n", lines);
}" />
text/csv; charset=utf-8
attachment; filename="query-result.csv"
@((string)context.Variables["csvBody"])
application/json
@(((IResponse)context.Variables["queryResponse"]).Body.As())