/// <summary>
        /// Overrideable method to allow the derived class to create messages.
        /// </summary>
        /// <param name="description"></param>
        /// <param name="code"></param>
        /// <param name="violationType"></param>
        /// <param name="elements"></param>
        /// <returns></returns>
        protected override ValidationMessage ConstructValidationMessage(string description, string code, ViolationType violationType, params ModelElement[] elements)
        {
            var message = new ProductStoreTaskValidationMessage(this, description, TaskCategory.BuildCompile, code, violationType, null);

            message.UpdateReferencedModelElements(elements);

            return(message);
        }
        public ProductStoreValidationTask(ProductStoreTaskValidationMessage message)
        {
            Guard.NotNull(() => message, message);

            this.Message = message;
            this.Message.Configure(this);

            base.CanDelete          = true;
            base.IsPriorityEditable = false;
            base.IsTextEditable     = false;
            base.IsCheckedEditable  = false;
            base.Checked            = false;
        }
        /// <summary>
        /// Overrideable method to allow the derived class to create messages.
        /// </summary>
        /// <param name="description"></param>
        /// <param name="code"></param>
        /// <param name="violationType"></param>
        /// <param name="elements"></param>
        /// <returns></returns>
        protected override ValidationMessage ConstructValidationMessage(string description, string code, ViolationType violationType, params ModelElement[] elements)
        {
            var message = new ProductStoreTaskValidationMessage(this, description, TaskCategory.BuildCompile, code, violationType, null);
            message.UpdateReferencedModelElements(elements);

            return message;
        }
        public ProductStoreValidationTask(ProductStoreTaskValidationMessage message)
        {
            Guard.NotNull(() => message, message);

            this.Message = message;
            this.Message.Configure(this);

            base.CanDelete = true;
            base.IsPriorityEditable = false;
            base.IsTextEditable = false;
            base.IsCheckedEditable = false;
            base.Checked = false;
        }