/// <summary> /// Corrige l'état de la propriété de navigation DefaultResource. /// </summary> private void FixupDefaultResource(Resource previousValue, bool skipKeys = false) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.Videos.Contains(this)) { previousValue.Videos.Remove(this); } if (DefaultResource != null) { if (!DefaultResource.Videos.Contains(this)) { DefaultResource.Videos.Add(this); } DefaultResourceId = DefaultResource.ResourceId; } else if (!skipKeys) { DefaultResourceId = null; } if (ChangeTracker.ChangeTrackingEnabled) { ChangeTracker.RecordValue("DefaultResource", previousValue, DefaultResource); if (DefaultResource != null && !DefaultResource.ChangeTracker.ChangeTrackingEnabled) { DefaultResource.StartTracking(); } } }
protected override IEnumerable <ValidationError> OnCustomValidate() { foreach (ValidationError error in base.OnCustomValidate()) { yield return(error); } if (DefaultResource != null) { DefaultResource.Validate(); if (!DefaultResource.IsValid.GetValueOrDefault() && DefaultResource.Errors.Any()) { yield return(new ValidationError(nameof(DefaultResource), DefaultResource.Errors.First().Message, DefaultResource.Errors)); } } }