コード例 #1
0
ファイル: Rule.cs プロジェクト: hpavolot/grafana-ng
        /// <summary>
        ///
        /// </summary>
        public Rule Validate(QueryProvider qp)
        {
            if (null == DateTimeMathParser.ToDuration(Frequency, TimeUnit.Second))
            {
                AlertValidationException.ThrowBadParseFrequency();
            }

            if (!string.IsNullOrEmpty(For) && !DateTimeMathParser.ToDuration(For, TimeUnit.Second).HasValue)
            {
                AlertValidationException.ThrowBadParseFor();
            }

            if (null == Conditions || 0 == Conditions.Length)
            {
                AlertValidationException.ThrowNoCondtitions();
            }

            if (!Enum.IsDefined(typeof(NoDataOptions), NoDataOption))
            {
                AlertValidationException.ThrowBadParseNoDataOption();
            }

            if (!Enum.IsDefined(typeof(ErrorOptions), ErrorOption))
            {
                AlertValidationException.ThrowBadParseErrorOption();
            }

            Conditions
            .ToList()
            .ForEach(c => c.Validate(qp));

            return(this);
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        public void Validate(QueryProvider qp)
        {
            if (null == Query)
            {
                AlertValidationException.ThrowBadQuery();
            }

            if (null == Evaluator)
            {
                AlertValidationException.ThrowBadEvaluator();
            }

            Query.Validate(qp);
            Evaluator.Validate();
        }