Пример #1
0
        /// <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();
                }
            }
        }
Пример #2
0
        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));
                }
            }
        }