public static void RecordComplexOriginalValues(String parentPropertyName, AddressInformation complexObject, ObjectChangeTracker changeTracker) { if (String.IsNullOrEmpty(parentPropertyName)) { throw new ArgumentException("String parameter cannot be null or empty.", "parentPropertyName"); } if (changeTracker == null) { throw new ArgumentNullException("changeTracker"); } changeTracker.RecordOriginalValue(String.Format(CultureInfo.InvariantCulture, "{0}.Fax", parentPropertyName), complexObject == null ? null : (object)complexObject.Fax); changeTracker.RecordOriginalValue(String.Format(CultureInfo.InvariantCulture, "{0}.Telephone", parentPropertyName), complexObject == null ? null : (object)complexObject.Telephone); changeTracker.RecordOriginalValue(String.Format(CultureInfo.InvariantCulture, "{0}.PostalCode", parentPropertyName), complexObject == null ? null : (object)complexObject.PostalCode); changeTracker.RecordOriginalValue(String.Format(CultureInfo.InvariantCulture, "{0}.City", parentPropertyName), complexObject == null ? null : (object)complexObject.City); changeTracker.RecordOriginalValue(String.Format(CultureInfo.InvariantCulture, "{0}.Address", parentPropertyName), complexObject == null ? null : (object)complexObject.Address); }