private void FixupCosite(Cosite previousValue) { if (IsDeserializing) { return; } if (previousValue != null && ReferenceEquals(previousValue.CoSiteUser, this)) { previousValue.CoSiteUser = null; } if (Cosite != null) { Cosite.CoSiteUser = this; CoSiteUserId = Cosite.CoSiteId; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Cosite") && (ChangeTracker.OriginalValues["Cosite"] == Cosite)) { ChangeTracker.OriginalValues.Remove("Cosite"); } else { ChangeTracker.RecordOriginalValue("Cosite", previousValue); } if (Cosite != null && !Cosite.ChangeTracker.ChangeTrackingEnabled) { Cosite.StartTracking(); } } }
private void Fixupcosite(Cosite previousValue, bool skipKeys = false) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.cositeusers.Contains(this)) { previousValue.cositeusers.Remove(this); } if (cosite != null) { if (!cosite.cositeusers.Contains(this)) { cosite.cositeusers.Add(this); } CoSiteId = cosite.CoSiteId; } else if (!skipKeys) { CoSiteId = null; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("cosite") && (ChangeTracker.OriginalValues["cosite"] == cosite)) { ChangeTracker.OriginalValues.Remove("cosite"); } else { ChangeTracker.RecordOriginalValue("cosite", previousValue); } if (cosite != null && !cosite.ChangeTracker.ChangeTrackingEnabled) { cosite.StartTracking(); } } }