/// <summary>
        /// Returns whether the current data context can currently be saved to the store.
        /// </summary>
        bool ISaveable.CanSave(AppPrincipal contextUser, IList <ErrorResult> errors)
        {
            bool result = false;

            if (_validator != null)
            {
                if (_validator.CanAssertAuthorizations)
                {
                    _validator.AssertAuthorizations(contextUser, this.AppContext, this);
                }

                if (_validator.CanValidate)
                {
                    result = _validator.Validate(contextUser, this.AppContext, this, errors);
                }
                else
                {
                    result = true;
                }
            }
            else
            {
                result = true;
            }

            return(result);
        }