コード例 #1
0
 public void Execute(ValidatingVisitor validator, TDefinition definition, IValidationLog log)
 {
     ArgumentUtility.CheckNotNull("validator", validator);
     ArgumentUtility.CheckNotNull("definition", definition);
     ArgumentUtility.CheckNotNull("log", log);
     RuleDelegate(new Args(validator, definition, log, this));
 }
コード例 #2
0
        public static void Validate(IVisitableDefinition startingPoint, IValidationLog log, params IRuleSet[] customRuleSets)
        {
            ArgumentUtility.CheckNotNull("startingPoint", startingPoint);
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("customRuleSets", customRuleSets);

            Validate(new[] { startingPoint }, log, customRuleSets);
        }
コード例 #3
0
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     foreach (var trigger in this.Triggers)
     {
         trigger.Validate(validationLog);
     }
 }
コード例 #4
0
 /// <summary>
 /// Validates this condition.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     foreach (var child in this.Children)
     {
         child.Validate(validationLog);
     }
 }
コード例 #5
0
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (this.OnValidate != null)
     {
         this.OnValidate(validationLog);
     }
 }
コード例 #6
0
 /// <summary>
 /// Validates this condition.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (string.IsNullOrEmpty(this.FileName))
     {
         validationLog.AddError("FileName has not been set");
     }
 }
コード例 #7
0
 /// <summary>
 /// Called when this task is validated.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 protected override void OnValidate(IValidationLog validationLog)
 {
     base.OnValidate(validationLog);
     if (string.IsNullOrEmpty(this.ProjectName))
     {
         validationLog.AddError("ProjectName has not been set");
     }
 }
コード例 #8
0
 /// <summary>
 /// Validates this condition.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (string.IsNullOrEmpty(this.FileName))
     {
         validationLog.AddError("FileName has not been set");
     }
 }
コード例 #9
0
 /// <summary>
 /// Called when this task is validated.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 protected override void OnValidate(IValidationLog validationLog)
 {
     base.OnValidate(validationLog);
     if (string.IsNullOrEmpty(this.ProjectName))
     {
         validationLog.AddError("ProjectName has not been set");
     }
 }
コード例 #10
0
ファイル: Wcf.cs プロジェクト: kascomp/CruiseControl.NET
 /// <summary>
 /// Validates this channel.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (string.IsNullOrEmpty(this.Name))
     {
         validationLog.AddWarning("Channel does not have a name");
     }
 }
コード例 #11
0
 /// <summary>
 /// Validates this item after it has been loaded.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
     // Everything must have a name
     if (string.IsNullOrEmpty(this.Name))
     {
         validationLog.AddError("The {0} has no name specified.", this.ItemType);
     }
 }
コード例 #12
0
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     foreach (var trigger in this.Triggers)
     {
         trigger.Validate(validationLog);
     }
 }
コード例 #13
0
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (!this.Time.HasValue)
     {
         validationLog.AddError("No time set - trigger will not fire");
     }
 }
コード例 #14
0
 protected override void OnValidate(IValidationLog validationLog)
 {
     base.OnValidate(validationLog);
     if (this.OnValidateAction != null)
     {
         this.OnValidateAction(validationLog);
     }
 }
コード例 #15
0
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (this.OnValidate != null)
     {
         this.OnValidate(validationLog);
     }
 }
コード例 #16
0
 protected override void OnValidate(IValidationLog validationLog)
 {
     base.OnValidate(validationLog);
     if (this.OnValidateAction != null)
     {
         this.OnValidateAction(validationLog);
     }
 }
コード例 #17
0
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (!this.Time.HasValue)
     {
         validationLog.AddError("No time set - trigger will not fire");
     }
 }
コード例 #18
0
ファイル: Or.cs プロジェクト: BiYiTuan/CruiseControl.NET
 /// <summary>
 /// Validates this condition.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     foreach (var child in this.Children)
     {
         child.Validate(validationLog);
     }
 }
コード例 #19
0
 /// <summary>
 /// Validates this channel.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     if (string.IsNullOrEmpty(this.Name))
     {
         validationLog.AddWarning("Channel does not have a name");
     }
 }
コード例 #20
0
 /// <summary>
 /// Validates the this item after it has been loaded.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     ValidationHelpers.CheckForDuplicateItems(this.Children, validationLog, "child");
     foreach (var child in this.Children)
     {
         child.Validate(validationLog);
     }
 }
コード例 #21
0
        private static ValidatingVisitor CreateValidatingVisitor(IValidationLog log, IRuleSet[] customRuleSets)
        {
            ValidatingVisitor visitor = new ValidatingVisitor(log);

            InstallDefaultRules(visitor);

            foreach (IRuleSet ruleSet in customRuleSets)
            {
                ruleSet.Install(visitor);
            }
            return(visitor);
        }
コード例 #22
0
            public Args(ValidatingVisitor validator, TDefinition definition, IValidationLog log, DelegateValidationRule <TDefinition> self)
            {
                ArgumentUtility.CheckNotNull("validator", validator);
                ArgumentUtility.CheckNotNull("definition", definition);
                ArgumentUtility.CheckNotNull("log", log);
                ArgumentUtility.CheckNotNull("self", self);

                _validator  = validator;
                _self       = self;
                _log        = log;
                _definition = definition;
            }
コード例 #23
0
        protected void SingleMust(bool test, IValidationLog log, IValidationRule rule)
        {
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("rule", rule);

            if (!test)
            {
                log.Fail(rule);
            }
            else
            {
                log.Succeed(rule);
            }
        }
コード例 #24
0
        /// <summary>
        /// Checks for duplicate items.
        /// </summary>
        /// <param name="children">The children.</param>
        /// <param name="validationLog">The validation log.</param>
        /// <param name="itemName">Name of the item.</param>
        public static void CheckForDuplicateItems(
            IEnumerable<ServerItem> children,
            IValidationLog validationLog,
            string itemName)
        {
            var childNames = new Dictionary<string, int>();
            foreach (var child in children ?? new ServerItem[0])
            {
                UpdateCount(child, childNames);
            }

            foreach (var duplicate in childNames.Where(v => v.Value > 1))
            {
                validationLog.AddError("Duplicate {1} name detected: '{0}'", duplicate.Key, itemName);
            }
        }
コード例 #25
0
        /// <summary>
        /// Validates this project after it has been loaded.
        /// </summary>
        /// <param name="validationLog"></param>
        public override void Validate(IValidationLog validationLog)
        {
            base.Validate(validationLog);

            // Check all the pre-build tasks
            foreach (var task in this.PreBuild)
            {
                task.Validate(validationLog);
            }

            // Check all the publisher tasks
            foreach (var task in this.Publishers)
            {
                task.Validate(validationLog);
            }
        }
コード例 #26
0
        /// <summary>
        /// Validates this project after it has been loaded.
        /// </summary>
        /// <param name="validationLog"></param>
        public override void Validate(IValidationLog validationLog)
        {
            base.Validate(validationLog);

            // Check all the pre-build tasks
            foreach (var task in this.PreBuild)
            {
                task.Validate(validationLog);
            }

            // Check all the publisher tasks
            foreach (var task in this.Publishers)
            {
                task.Validate(validationLog);
            }
        }
コード例 #27
0
        /// <summary>
        /// Validates this task after it has been loaded.
        /// </summary>
        public void Validate(IValidationLog validationLog)
        {
            logger.Debug("Validating task '{0}'", this.NameOrType);
            this.OnValidate(validationLog);

            foreach (var condition in this.Conditions ?? new TaskCondition[0])
            {
                condition.Validate(validationLog);
            }

            foreach (var failureAction in this.FailureActions ?? new TaskFailureAction[0])
            {
                failureAction.Validate(validationLog);
            }

            this.State = TaskState.Validated;
        }
コード例 #28
0
        /// <summary>
        /// Checks for duplicate items.
        /// </summary>
        /// <param name="children">The children.</param>
        /// <param name="validationLog">The validation log.</param>
        /// <param name="itemName">Name of the item.</param>
        public static void CheckForDuplicateItems(
            IEnumerable <ServerItem> children,
            IValidationLog validationLog,
            string itemName)
        {
            var childNames = new Dictionary <string, int>();

            foreach (var child in children ?? new ServerItem[0])
            {
                UpdateCount(child, childNames);
            }

            foreach (var duplicate in childNames.Where(v => v.Value > 1))
            {
                validationLog.AddError("Duplicate {1} name detected: '{0}'", duplicate.Key, itemName);
            }
        }
コード例 #29
0
        /// <summary>
        /// Validates this project after it has been loaded.
        /// </summary>
        public override void Validate(IValidationLog validationLog)
        {
            logger.Debug("Validating project '{0}'", this.Name ?? string.Empty);
            base.Validate(validationLog);
            foreach (var task in this.Tasks)
            {
                task.Validate(validationLog);
            }

            foreach (var trigger in this.Triggers)
            {
                trigger.Validate(validationLog);
            }

            foreach (var sourceControl in this.SourceControl)
            {
                sourceControl.Validate(validationLog);
            }
        }
コード例 #30
0
        /// <summary>
        /// Validates this server after it has been loaded.
        /// </summary>
        /// <param name="validationLog">The validation log.</param>
        public virtual void Validate(IValidationLog validationLog)
        {
            logger.Debug("Validating server '{0}'", this.Name ?? string.Empty);

            // Everything must have a name
            if (string.IsNullOrEmpty(this.Name))
            {
                validationLog.AddError("The Server has no name specified.");
            }

            // Validate the children
            foreach (var child in this.Children)
            {
                child.Validate(validationLog);
            }

            // Check if there are any duplicated children
            ValidationHelpers.CheckForDuplicateItems(this.Children, validationLog, "child");
            var projects = this.Children
                           .SelectMany(c => c.ListProjects());

            ValidationHelpers.CheckForDuplicateItems(projects, validationLog, "project");
        }
コード例 #31
0
 /// <summary>
 /// Validates this block.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
 }
コード例 #32
0
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
     logger.Debug("Validating trigger '{0}'", this.NameOrType);
 }
コード例 #33
0
 /// <summary>
 /// Called when this task is validated.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 protected virtual void OnValidate(IValidationLog validationLog)
 {
 }
コード例 #34
0
 /// <summary>
 /// Validates this item after it has been loaded.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
     // Everything must have a name
     if (string.IsNullOrEmpty(this.Name))
     {
         validationLog.AddError("The {0} has no name specified.", this.ItemType);
     }
 }
コード例 #35
0
 private ValidationException SetUpExceptionWithDummyStackTrace(string exceptionMessage, IValidationLog validationLog)
 {
     try
     {
         throw new ValidationException(exceptionMessage, validationLog);
     }
     catch (ValidationException caughtException)
     {
         return(caughtException);
     }
 }
コード例 #36
0
ファイル: Task.cs プロジェクト: BiYiTuan/CruiseControl.NET
        /// <summary>
        /// Validates this task after it has been loaded.
        /// </summary>
        public void Validate(IValidationLog validationLog)
        {
            logger.Debug("Validating task '{0}'", this.NameOrType);
            this.OnValidate(validationLog);

            foreach (var condition in this.Conditions ?? new TaskCondition[0])
            {
                condition.Validate(validationLog);
            }

            foreach (var failureAction in this.FailureActions ?? new TaskFailureAction[0])
            {
                failureAction.Validate(validationLog);
            }

            this.State = TaskState.Validated;
        }
コード例 #37
0
 /// <summary>
 /// Validates this channel.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
 }
コード例 #38
0
 /// <summary>
 /// Validates the this item after it has been loaded.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     base.Validate(validationLog);
     ValidationHelpers.CheckForDuplicateItems(this.Children, validationLog, "child");
     foreach (var child in this.Children)
     {
         child.Validate(validationLog);
     }
 }
コード例 #39
0
        public static void Validate(IEnumerable <IVisitableDefinition> startingPoints, IValidationLog log, params IRuleSet[] customRuleSets)
        {
            ArgumentUtility.CheckNotNull("startingPoints", startingPoints);
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("customRuleSets", customRuleSets);

            var visitor = CreateValidatingVisitor(log, customRuleSets);

            foreach (IVisitableDefinition startingPoint in startingPoints)
            {
                startingPoint.Accept(visitor);
            }
        }
コード例 #40
0
ファイル: Server.cs プロジェクト: BiYiTuan/CruiseControl.NET
        /// <summary>
        /// Validates this server after it has been loaded.
        /// </summary>
        /// <param name="validationLog">The validation log.</param>
        public virtual void Validate(IValidationLog validationLog)
        {
            logger.Debug("Validating server '{0}'", this.Name ?? string.Empty);

            // Everything must have a name
            if (string.IsNullOrEmpty(this.Name))
            {
                validationLog.AddError("The Server has no name specified.");
            }

            // Validate the children
            foreach (var child in this.Children)
            {
                child.Validate(validationLog);
            }

            // Check if there are any duplicated children
            ValidationHelpers.CheckForDuplicateItems(this.Children, validationLog, "child");
            var projects = this.Children
                .SelectMany(c => c.ListProjects());
            ValidationHelpers.CheckForDuplicateItems(projects, validationLog, "project");
        }
コード例 #41
0
ファイル: Task.cs プロジェクト: BiYiTuan/CruiseControl.NET
 /// <summary>
 /// Called when this task is validated.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 protected virtual void OnValidate(IValidationLog validationLog)
 {
 }
コード例 #42
0
 public ValidatingVisitor(IValidationLog validationLog)
 {
     ArgumentUtility.CheckNotNull("validationLog", validationLog);
     _validationLog = validationLog;
 }
コード例 #43
0
 /// <summary>
 /// Validates this block.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     throw new NotImplementedException();
 }
コード例 #44
0
ファイル: Trigger.cs プロジェクト: BiYiTuan/CruiseControl.NET
 /// <summary>
 /// Validates this trigger.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public virtual void Validate(IValidationLog validationLog)
 {
     logger.Debug("Validating trigger '{0}'", this.NameOrType);
 }
コード例 #45
0
 public void MergeIn(IValidationLog log)
 {
     _data.Add(log.GetData());
 }
コード例 #46
0
 /// <summary>
 /// Validates this block.
 /// </summary>
 /// <param name="validationLog">The validation log.</param>
 public override void Validate(IValidationLog validationLog)
 {
     throw new NotImplementedException();
 }