private void FixupGateway(Gateway previousValue) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.GatewayCountries.Contains(this)) { previousValue.GatewayCountries.Remove(this); } if (Gateway != null) { if (!Gateway.GatewayCountries.Contains(this)) { Gateway.GatewayCountries.Add(this); } GatewayId = Gateway.Id; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Gateway") && (ChangeTracker.OriginalValues["Gateway"] == Gateway)) { ChangeTracker.OriginalValues.Remove("Gateway"); } else { ChangeTracker.RecordOriginalValue("Gateway", previousValue); } if (Gateway != null && !Gateway.ChangeTracker.ChangeTrackingEnabled) { Gateway.StartTracking(); } } }
public bool Equals(Gateway other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; if (other.Id == 0 && Id == 0) return false; else return other.Id == Id; }