/// <summary>
 /// Provide a context class for the validation
 /// </summary>
 /// <param name="subjects"></param>
 /// <param name="categories"></param>
 /// <returns></returns>
 protected override ValidationContext CreateValidationContext(IEnumerable<ModelElement> subjects, ValidationCategories categories)
 {
     return new ProductStoreValidationContext(categories, subjects, this.ServiceProvider);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ProductStoreValidationContext"/> class.
 /// </summary>
 /// <param name="categories">The categories.</param>
 /// <param name="subjects">The subjects.</param>
 /// <param name="serviceProvider">The service provider.</param>
 public ProductStoreValidationContext(ValidationCategories categories, IEnumerable<ModelElement> subjects, IServiceProvider serviceProvider)
     : base(categories, subjects, serviceProvider)
 {
 }
 /// <summary>
 /// Provide a context class for the validation
 /// </summary>
 /// <param name="subjects"></param>
 /// <param name="categories"></param>
 /// <returns></returns>
 protected override ValidationContext CreateValidationContext(IEnumerable <ModelElement> subjects, ValidationCategories categories)
 {
     return(new ProductStoreValidationContext(categories, subjects, this.ServiceProvider));
 }
Exemplo n.º 4
0
        protected bool ValidateStore(string categories, CompilerErrorCollection errors)
        {
            if (this.skipValidation)
            {
                return(false);
            }
            if (errors == null)
            {
                throw new ArgumentNullException("errors");
            }
            if (this.Store == null)
            {
                return(true);
            }
            if (string.IsNullOrEmpty(categories))
            {
                return(true);
            }
            string[]             strArray    = categories.Split(new char[] { '|' });
            ValidationCategories categories2 = 0;
            List <string>        list        = new List <string>();

            foreach (string str in strArray)
            {
                string str2 = str.Trim();
                if (!string.IsNullOrEmpty(str2))
                {
                    if (StringComparer.OrdinalIgnoreCase.Compare(str2, "Open") == 0)
                    {
                        categories2 |= ValidationCategories.Open;
                    }
                    else if (StringComparer.OrdinalIgnoreCase.Compare(str2, "Load") == 0)
                    {
                        categories2 |= ValidationCategories.Load;
                    }
                    else if (StringComparer.OrdinalIgnoreCase.Compare(str2, "Save") == 0)
                    {
                        categories2 |= ValidationCategories.Save;
                    }
                    else if (StringComparer.OrdinalIgnoreCase.Compare(str2, "Menu") == 0)
                    {
                        categories2 |= ValidationCategories.Menu;
                    }
                    else if (StringComparer.OrdinalIgnoreCase.Compare(str2, "Custom") == 0)
                    {
                        categories2 |= ValidationCategories.Custom;
                    }
                    else
                    {
                        list.Add(str2);
                    }
                }
            }
            bool flag = false;
            ValidationController controller = new ValidationController();

            if (categories2 != 0)
            {
                controller.Validate(this.store, categories2);
                foreach (ValidationMessage message in controller.ValidationMessages)
                {
                    CompilerError error = new CompilerError(message.File, message.Line, message.Column, message.Code, message.Description)
                    {
                        IsWarning = message.Type != ViolationType.Error
                    };
                    flag |= !error.IsWarning;
                    errors.Add(error);
                }
            }
            if (list.Count > 0)
            {
                controller.ValidateCustom(this.store, list.ToArray());
                foreach (ValidationMessage message2 in controller.ValidationMessages)
                {
                    CompilerError error2 = new CompilerError(message2.File, message2.Line, message2.Column, message2.Code, message2.Description)
                    {
                        IsWarning = message2.Type != ViolationType.Error
                    };
                    flag |= !error2.IsWarning;
                    errors.Add(error2);
                }
            }
            return(flag);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ProductStoreValidationContext"/> class.
 /// </summary>
 /// <param name="categories">The categories.</param>
 /// <param name="subjects">The subjects.</param>
 /// <param name="serviceProvider">The service provider.</param>
 public ProductStoreValidationContext(ValidationCategories categories, IEnumerable <ModelElement> subjects, IServiceProvider serviceProvider)
     : base(categories, subjects, serviceProvider)
 {
 }