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