예제 #1
0
        public static async Task <IActionResult> MakeIndex(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("CreateIndex: Starting");
            try
            {
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                CreateIndexParameters indexParm = JsonConvert.DeserializeObject <CreateIndexParameters>(requestBody);
                if (indexParm == null)
                {
                    log.LogError("CreateIndex: error missing index parameters");
                    return(new BadRequestObjectResult("Error missing index parameters"));
                }
                string          storageAccount = Common.Helpers.Common.GetStorageKey(req);
                IndexManagement im             = new IndexManagement(storageAccount);
                await im.CreateIndex(indexParm);
            }
            catch (Exception ex)
            {
                log.LogError($"CreateIndex: {ex}");
                return(new BadRequestObjectResult($"Error creating index: {ex}"));
            }

            log.LogInformation("CreateIndex: Complete");
            return(new OkObjectResult("OK"));
        }
예제 #2
0
 public void CreateWithOneIndexThrowsException()
 {
     //assert
     Assert.ThrowsAsync <ArgumentException>(() => IndexManagement.CreateIndex <City>(
                                                ConfigValues.project,
                                                new IndexField
     {
         fieldPath = nameof(City.Name),
         mode      = nameof(ModeValues.ASCENDING)
     }));
 }
예제 #3
0
 public async Task <ActionResult> Create(CreateIndexParameters iParameters)
 {
     logger.LogInformation("CreateIndexController: Starting index create");
     try
     {
         string          storageAccount = Common.Helpers.Common.GetStorageKey(Request);
         IndexManagement im             = new IndexManagement(storageAccount);
         await im.CreateIndex(iParameters);
     }
     catch (Exception ex)
     {
         logger.LogInformation($"CreateIndexController: Error message = {ex}");
         return(BadRequest(ex.ToString()));
     }
     return(NoContent());
 }
예제 #4
0
        public async Task CreateIndex()
        {
            //act
            var response = await IndexManagement.CreateIndex <City>(ConfigValues.project,
                                                                    new IndexField
            {
                fieldPath = nameof(City.Name),
                mode      = nameof(ModeValues.ASCENDING)
            },
                                                                    new IndexField
            {
                fieldPath = nameof(City.PopSize),
                mode      = nameof(ModeValues.DESCENDING)
            });

            //assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }