private void FixupCustomer(Customer previousValue) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.SalesOrderHeaders.Contains(this)) { previousValue.SalesOrderHeaders.Remove(this); } if (Customer != null) { if (!Customer.SalesOrderHeaders.Contains(this)) { Customer.SalesOrderHeaders.Add(this); } CustomerID = Customer.CustomerID; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Customer") && (ChangeTracker.OriginalValues["Customer"] == Customer)) { ChangeTracker.OriginalValues.Remove("Customer"); } else { ChangeTracker.RecordOriginalValue("Customer", previousValue); } if (Customer != null && !Customer.ChangeTracker.ChangeTrackingEnabled) { Customer.StartTracking(); } } }
private void FixupCustomer(Customer previousValue) { if (IsDeserializing) { return; } if (previousValue != null && ReferenceEquals(previousValue.Individual, this)) { previousValue.Individual = null; } if (Customer != null) { Customer.Individual = this; CustomerID = Customer.CustomerID; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Customer") && (ChangeTracker.OriginalValues["Customer"] == Customer)) { ChangeTracker.OriginalValues.Remove("Customer"); } else { ChangeTracker.RecordOriginalValue("Customer", previousValue); } if (Customer != null && !Customer.ChangeTracker.ChangeTrackingEnabled) { Customer.StartTracking(); } } }