public CustomerDemographicResponse Update(CustomerDemographicUpdateRequest request)
        {
            using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter())
            {
                OnBeforeCustomerDemographicUpdateRequest(adapter, request);

                var entity = request.FromDto();
                entity.IsNew   = false;
                entity.IsDirty = true;

                if (adapter.SaveEntity(entity, true))
                {
                    OnAfterCustomerDemographicUpdateRequest(adapter, request);
                    return(new CustomerDemographicResponse(entity.ToDto()));
                }
            }

            throw new InvalidOperationException();
        }