public async Task <IncidentEntity> CreateAsync(IncidentPostBindingModel model)
        {
            var storageClient = this.GetStorageClient();
            var incidentTable = storageClient.GetTableReference(_TABLE_NAME);
            await incidentTable.CreateIfNotExistsAsync();

            TableOperation insertOperation = TableOperation.Insert(new IncidentEntity()
            {
                RowKey       = $"{_TABLE_PARTITION_KEY}_{new Random().Next(1000, 3000)}",
                PartitionKey = _TABLE_PARTITION_KEY,
                Status       = IncidentEntity.IncidentStatus.Open,
                Title        = model.Title,
                Notes        = model.Notes,
                ModifiedAt   = DateTime.UtcNow
            });

            var result = await incidentTable.ExecuteAsync(insertOperation);

            return(result.Result as IncidentEntity);
        }
        public async Task <IActionResult> CreateIncident(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "incident")] IncidentPostBindingModel model,
            [SignalR(HubName = "incidents")] IAsyncCollector <SignalRMessage> signalr,
            ILogger log)
        {
            try
            {
                var incident = await _incidentRepository.CreateAsync(model);

                await signalr.AddAsync(
                    new SignalRMessage
                {
                    Target    = "broadcast",
                    Arguments = new[] { "update" }
                });

                return(new OkObjectResult(incident));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }