public static FoodfestItem GetTableModelFor(FoodfestItemPostBindingModel bindingModel)
        {
            var rowPrefix = new Random().Next(1000, 3999);

            return(new FoodfestItem()
            {
                Amount = bindingModel.Amount,
                Food = bindingModel.Food,
                FullName = bindingModel.FullName,
                PartitionKey = "Foods",
                RowKey = $"{rowPrefix}__{bindingModel.FullName.ToUpper().Replace(" ", "_")}_{bindingModel.Food.ToUpper().Replace(" ", "_")}"
            });
        }
Exemplo n.º 2
0
        public static async Task <IActionResult> AddItem(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] FoodfestItemPostBindingModel bindingModel,
            [Table("FoodfestItems", "Foods", Connection = "AzureWebJobsStorage")] IAsyncCollector <FoodfestItem> foodfestItemsTable,
            ILogger log)
        {
            try
            {
                var tableModel = FoodfestFactory.GetTableModelFor(bindingModel);
                await foodfestItemsTable.AddAsync(tableModel);

                log.LogInformation($"Added {tableModel.RowKey}: {tableModel.Food} by {tableModel.FullName}");

                return(new OkObjectResult(FoodfestFactory.GetBindingModelFor(tableModel)));
            }
            catch
            {
                return(new BadRequestResult());
            }
        }