public async Task UpdateAsync(string id, IncidentPutBindingModel model) { var storageClient = this.GetStorageClient(); var incidentTable = storageClient.GetTableReference(_TABLE_NAME); await incidentTable.CreateIfNotExistsAsync(); var incident = await GetByIdAsync(id); if (incident != null) { incident.ModifiedAt = DateTime.UtcNow; incident.Title = model.Title ?? incident.Title; incident.Notes = model.Notes ?? incident.Notes; if (Enum.TryParse(typeof(IncidentEntity.IncidentStatus), model.Status, out object incidentStatus)) { incident.Status = (IncidentEntity.IncidentStatus)incidentStatus; } await incidentTable.ExecuteAsync(TableOperation.Replace(incident)); } else { throw new NullReferenceException("Object with id not found"); } }
public async Task <IActionResult> UpdateIncident( [HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "incident/{id}")] IncidentPutBindingModel model, [SignalR(HubName = "incidents")] IAsyncCollector <SignalRMessage> signalr, ILogger log, string id) { try { await _incidentRepository.UpdateAsync(id, model); await signalr.AddAsync( new SignalRMessage { Target = "broadcast", Arguments = new[] { "update" } }); return(new OkResult()); } catch (Exception ex) { return(new BadRequestObjectResult(ex.Message)); } }