public void Process(ValidateDomainModelPipelineArgs args)
        {
            using (new SecurityDisabler())
            {
                // set an application wide value indicating validation errors (can be used to check validation result later)
                if (HttpContext.Current.Cache[validationResultCacheKey] == null)
                {
                    HttpContext.Current.Cache.Add(validationResultCacheKey, bool.TrueString, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(0), CacheItemPriority.AboveNormal, null);
                }
                else
                {
                    HttpContext.Current.Cache[validationResultCacheKey] = bool.TrueString;
                }

                CheckModuleVersion(args.Errors, args.Warnings);

                IDictionary<DomainObjectAttribute, List<DomainObjectFieldAttribute>> attributes = new Dictionary<DomainObjectAttribute, List<DomainObjectFieldAttribute>>();

                CheckDataModel(args.Errors, args.Warnings, attributes);

                CheckFixedPaths(args.Errors, args.Warnings, attributes);

                if (args.Errors.Count > 0)
                {
                    HttpContext.Current.Cache[validationResultCacheKey] = bool.FalseString;
                }
            }
        }
        public static void ValidateDomainModel(List<string> errors, List<string> warnings)
        {
            Assert.IsNotNull(errors, "You need to provide an 'errors' list for validation results");
            if (warnings == null)
            {
                warnings = new List<string>();
            }

            ValidateDomainModelPipelineArgs pipelineArgs = new ValidateDomainModelPipelineArgs(errors, warnings);
            CorePipeline.Run("ValidateDomainModel", pipelineArgs);
        }