public IActionResult Update(int id, [FromBody] ActorUpdateInputModel inputModel) { if (inputModel == null || id != inputModel.Id) { return(BadRequest()); } var entity = new EntityFramework.Entities.Actor { Id = inputModel.Id, Name = inputModel.Name, Timestamp = inputModel.Timestamp }; try { context.Actors.Update(entity); context.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { var inEntry = ex.Entries.Single(); var dbEntry = inEntry.GetDatabaseValues(); if (dbEntry == null) { return(StatusCode(StatusCodes.Status500InternalServerError, "Actor was deleted by another user")); } var inModel = inEntry.Entity as EntityFramework.Entities.Actor; var dbModel = dbEntry.ToObject() as EntityFramework.Entities.Actor; var conflicts = new Dictionary <string, string>(); if (inModel.Name != dbModel.Name) { conflicts.Add("Actor", $"Changed from '{inModel.Name}' to '{dbModel.Name}'"); } if (inModel.Timestamp != dbModel.Timestamp) { conflicts.Add("Timestamp", $"Changed from '{Convert.ToBase64String(inModel.Timestamp)}' to '{Convert.ToBase64String(dbModel.Timestamp)}'"); } return(StatusCode(StatusCodes.Status412PreconditionFailed, conflicts)); } return(NoContent()); }