Catel.Data.ModelBase.SuspendValidations C# (CSharp) Метод

SuspendValidations() публичный Метод

Suspends the validation until the disposable token has been disposed.
public SuspendValidations ( bool validateOnResume = true ) : IDisposable
validateOnResume bool
Результат IDisposable
        public IDisposable SuspendValidations(bool validateOnResume = true)
        {
            var token = new DisposableToken<ModelBase>(this, x =>
            {
                lock (_validationLock)
                {
                    if (_validationSuspensionContext == null)
                    {
                        _validationSuspensionContext = new SuspensionContext();
                    }

                    _validationSuspensionContext.Increment();
                }
            },
            x =>
            {
                SuspensionContext suspensionContext;

                lock (_validationLock)
                {
                    suspensionContext = _validationSuspensionContext;
                    if (suspensionContext != null)
                    {
                        suspensionContext.Decrement();

                        if (suspensionContext.Counter == 0)
                        {
                            _validationSuspensionContext = null;
                        }
                    }
                }

                if (validateOnResume)
                {
                    if (suspensionContext != null && suspensionContext.Counter == 0)
                    {
                        //var properties = suspensionContext.Properties;

                        // TODO: In v5, replace with context and smart validation
                        Validate(true, true);

                        //foreach (var property in properties)
                        //{
                        //    Validate(property);
                        //}
                    }
                }
            });

            return token;
        }