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)); } }