// PUT api/<controller>/<id>
        public IDictionary <string, object> Put(string id, [FromBody] JObject update)
        {
            if (CustomerKey == null)
            {
                throw new HttpResponseException(HttpStatusCode.Unauthorized);
            }

            if (Individual == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            Individual.Merge(update);

            using (var connection = DataUtils.GetConnection())
            {
                using (var transaction = connection.BeginTransaction())
                {
                    var error = Individual.Update(connection, transaction);

                    if (error.HasError)
                    {
                        transaction.Rollback();

                        throw new ApiResponseException(
                                  status: HttpStatusCode.InternalServerError,
                                  message: error.Message,
                                  code: error.Number
                                  );
                    }

                    Individual.ProcessRoundTripEvents(connection, transaction);

                    transaction.Commit();
                }
            }

            Individual.AfterSave();

            return(Get(id));
        }