public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { Container container = InitializeClientAndGetContainer(req); //PARAMETERS string QUERY = req.Query["query"]; //If post get the query from the body if (req.Method == "POST") { QUERY = await new StreamReader(req.Body).ReadToEndAsync(); } log.LogInformation("QUERY:" + QUERY); QueryDefinition query = new QueryDefinition(QUERY); FeedIterator <dynamic> resultSet = container.GetItemQueryIterator <dynamic>( query, requestOptions: new QueryRequestOptions() { MaxItemCount = -1 }); List <dynamic> L = new List <dynamic>(); double t = 0; while (resultSet.HasMoreResults) { FeedResponse <dynamic> response = await resultSet.ReadNextAsync(); t += response.RequestCharge; L = L.Concat(response).ToList(); } QResult R = new QResult() { RU = t, NR = L.Count, LB = JsonConvert.SerializeObject(L).Length, Data = L }; return((ActionResult) new OkObjectResult(R)); }
public static async Task <IActionResult> Upsert( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log) { Container container = InitializeClientAndGetContainer(req); //PARAMETERS string partitionKeyValue = req.Query["partitionKeyValue"]; string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic inputDoc = JsonConvert.DeserializeObject(requestBody); PartitionKey PK = new PartitionKey(partitionKeyValue); ItemResponse <dynamic> response = await container.UpsertItemAsync <dynamic>(inputDoc, PK); QResult R = new QResult() { RU = response.RequestCharge, NR = 1, LB = 0, Data = response.StatusCode }; return((ActionResult) new OkObjectResult(R)); }
public static async Task <IActionResult> Delete( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { Container container = InitializeClientAndGetContainer(req); //PARAMETERS string partitionKeyValue = req.Query["partitionKeyValue"]; string id = req.Query["id"]; if (id != null) { log.LogInformation("DELETING " + id); ItemResponse <dynamic> response = await container.DeleteItemAsync <dynamic>(id, new PartitionKey(partitionKeyValue)); QResult R = new QResult() { RU = response.RequestCharge, NR = 1, LB = 0, Data = response.StatusCode }; return((ActionResult) new OkObjectResult(R)); } return((ActionResult) new OkObjectResult(false)); }