示例#1
0
 private void Reason(RuleRecord record)
 {
     foreach (var item in record.Reason)
     {
         _Logger.WriteObject(string.Concat("##vso[task.logissue type=error]- ", item), false);
     }
 }
示例#2
0
 protected override void FailWithError(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Concat("    [-] ", record.RuleName));
     ErrorDetail(record);
     UnbrokenContent();
 }
示例#3
0
 public Task CreateOrUpdateRuleRecordAsync(RuleRecord record, CancellationToken cancellationToken = default)
 => CreateOrUpdateItemAsync(
     record,
     pk: CONNECTION_PREFIX + record.ConnectionId,
     sk: RULE_PREFIX + record.Rule,
     cancellationToken
     );
示例#4
0
 private void Reason(RuleRecord record)
 {
     foreach (var item in record.Reason)
     {
         _Logger.WriteObject(string.Concat("::error:: - ", item), false);
     }
 }
示例#5
0
 protected override void FailWithError(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Client_Error, record.RuleName), forgroundColor: ConsoleColor.Red);
     ErrorDetail(record);
     UnbrokenContent();
 }
示例#6
0
 protected override void FailWithError(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Plain_Fail, record.RuleName));
     ErrorDetail(record);
     UnbrokenContent();
 }
示例#7
0
        public RuleRecord CreateRule(string name)
        {
            var ruleRecord = new RuleRecord {
                Name = name
            };

            _ruleRepository.Create(ruleRecord);

            return(ruleRecord);
        }
示例#8
0
                protected override void ErrorDetail(RuleRecord record)
                {
                    if (record.Error == null)
                    {
                        return;
                    }

                    Error(string.Format(FormatterStrings.AzurePipelines_Error, record.TargetName, record.RuleName, record.Error.Message));
                    LineBreak();
                    WriteLine(record.Error.ScriptStackTrace);
                }
示例#9
0
                private void GetError(RuleRecord record)
                {
                    if (record.Error == null)
                    {
                        return;
                    }

                    Error(string.Format(FormatterStrings.AzurePipelines_Error, record.TargetName, record.RuleName, record.Error.Message));
                    Write();
                    Write(record.Error.ScriptStackTrace);
                }
示例#10
0
        public static RuleRecord ParseRules(string input)
        {
            var rules = new Dictionary <string, Rule>();

            foreach (var line in input.Split(Environment.NewLine))
            {
                var split = line.Split(":");
                rules.Add(split[0], RuleRecord.ParseRule(split[0], split[1]));
            }

            return(new RuleRecord(rules));
        }
示例#11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateRuleInput" /> class.
 /// </summary>
 /// <param name="Rule">Rule (required).</param>
 public CreateRuleInput(RuleRecord Rule = null)
 {
     // to ensure "Rule" is required (not null)
     if (Rule == null)
     {
         throw new InvalidDataException("Rule is a required property for CreateRuleInput and cannot be null");
     }
     else
     {
         this.Rule = Rule;
     }
 }
示例#12
0
        protected void WriteErrorInfo(RuleRecord record)
        {
            if (record == null || record.Error == null)
            {
                return;
            }

            WriteError(new ErrorRecord(
                           record.Error.Exception,
                           record.Error.ErrorId,
                           record.Error.Category,
                           record.TargetName
                           ));
        }
示例#13
0
 protected override void FailDetail(RuleRecord record)
 {
     LineBreak();
     WriteLine(FormatterStrings.Recommend, forgroundColor: ConsoleColor.Cyan);
     WriteLines(record.Recommendation, prefix: FormatterStrings.RecommendPrefix, forgroundColor: ConsoleColor.Cyan);
     if (record.Reason != null && record.Reason.Length > 0)
     {
         LineBreak();
         WriteLine(FormatterStrings.Reason, forgroundColor: ConsoleColor.Cyan);
         for (var i = 0; i < record.Reason.Length; i++)
         {
             WriteLines(record.Reason[i], prefix: FormatterStrings.ReasonPrefix, forgroundColor: ConsoleColor.Cyan);
         }
     }
     LineBreak();
 }
示例#14
0
        /// <summary>
        /// Add a record to the result.
        /// </summary>
        /// <param name="ruleRecord">The record after processing a rule.</param>
        internal void Add(RuleRecord ruleRecord)
        {
            _Outcome = GetWorstCase(ruleRecord.Outcome);
            _Time   += ruleRecord.Time;
            _Total++;

            if (ruleRecord.Outcome == RuleOutcome.Error)
            {
                _Error++;
            }
            if (ruleRecord.Outcome == RuleOutcome.Fail)
            {
                _Fail++;
            }
            _Record.Add(ruleRecord);
        }
示例#15
0
 protected virtual void FailDetail(RuleRecord record)
 {
     if (!string.IsNullOrEmpty(record.Recommendation))
     {
         LineBreak();
         WriteLine(FormatterStrings.Recommend);
         WriteLines(record.Recommendation, prefix: FormatterStrings.RecommendPrefix);
     }
     if (record.Reason != null && record.Reason.Length > 0)
     {
         LineBreak();
         WriteLine(FormatterStrings.Reason);
         for (var i = 0; i < record.Reason.Length; i++)
         {
             WriteLines(record.Reason[i], prefix: FormatterStrings.ReasonPrefix);
         }
     }
     LineBreak();
 }
示例#16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateRuleResult" /> class.
 /// </summary>
 /// <param name="Hdr">Hdr (required).</param>
 /// <param name="UpdatedRule">UpdatedRule (required).</param>
 public UpdateRuleResult(ResponseHeaderRecord Hdr = null, RuleRecord UpdatedRule = null)
 {
     // to ensure "Hdr" is required (not null)
     if (Hdr == null)
     {
         throw new InvalidDataException("Hdr is a required property for UpdateRuleResult and cannot be null");
     }
     else
     {
         this.Hdr = Hdr;
     }
     // to ensure "UpdatedRule" is required (not null)
     if (UpdatedRule == null)
     {
         throw new InvalidDataException("UpdatedRule is a required property for UpdateRuleResult and cannot be null");
     }
     else
     {
         this.UpdatedRule = UpdatedRule;
     }
 }
示例#17
0
        /// <summary>
        /// Exit the rule block scope.
        /// </summary>
        public void ExitRuleBlock()
        {
            // Stop rule execution time
            _RuleTimer.Stop();
            RuleRecord.Time = _RuleTimer.ElapsedMilliseconds;

            if (!RuleRecord.IsSuccess())
            {
                RuleRecord.Reason = _Reason.ToArray();
            }

            if (_Logger != null)
            {
                _Logger.ExitScope();
            }

            _LogPrefix = null;
            RuleRecord = null;
            RuleBlock  = null;
            _Reason.Clear();
        }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateRuleResult" /> class.
 /// </summary>
 /// <param name="SavedRule">SavedRule (required).</param>
 /// <param name="Hdr">Hdr (required).</param>
 public CreateRuleResult(RuleRecord SavedRule = null, ResponseHeaderRecord Hdr = null)
 {
     // to ensure "SavedRule" is required (not null)
     if (SavedRule == null)
     {
         throw new InvalidDataException("SavedRule is a required property for CreateRuleResult and cannot be null");
     }
     else
     {
         this.SavedRule = SavedRule;
     }
     // to ensure "Hdr" is required (not null)
     if (Hdr == null)
     {
         throw new InvalidDataException("Hdr is a required property for CreateRuleResult and cannot be null");
     }
     else
     {
         this.Hdr = Hdr;
     }
 }
示例#19
0
        private void VisitRecord(RuleRecord record)
        {
            if (record == null)
            {
                return;
            }

            WriteColumn(record.RuleName);
            _Builder.Append(COMMA);
            WriteColumn(record.TargetName);
            _Builder.Append(COMMA);
            WriteColumn(record.TargetType);
            _Builder.Append(COMMA);
            WriteColumn(record.Outcome.ToString());
            _Builder.Append(COMMA);
            WriteColumn(record.OutcomeReason.ToString());
            _Builder.Append(COMMA);
            WriteColumn(record.Info.Synopsis);
            _Builder.Append(COMMA);
            WriteColumn(record.Info.Recommendation);
            _Builder.Append(Environment.NewLine);
        }
示例#20
0
        /// <summary>
        /// Enter the rule block scope.
        /// </summary>
        public RuleRecord EnterRuleBlock(RuleBlock ruleBlock)
        {
            _Binder.Bind(Baseline, TargetObject);
            RuleBlock  = ruleBlock;
            RuleRecord = new RuleRecord(
                ruleId: ruleBlock.RuleId,
                ruleName: ruleBlock.RuleName,
                targetObject: TargetObject,
                targetName: _Binder.TargetName,
                targetType: _Binder.TargetType,
                tag: ruleBlock.Tag,
                info: ruleBlock.Info,
                field: _Binder.Field
                );

            if (_Logger != null)
            {
                _Logger.EnterScope(ruleBlock.RuleName);
            }

            // Starts rule execution timer
            _RuleTimer.Restart();
            return(RuleRecord);
        }
示例#21
0
 protected override void Fail(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Client_Fail, record.RuleName), forgroundColor: ConsoleColor.Red);
     FailDetail(record);
 }
示例#22
0
 protected override void Pass(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Plain_Pass, record.RuleName));
     UnbrokenContent();
 }
示例#23
0
 public static int SaveRuleRecord(RuleRecord item)
 {
     return(DukappRepository.SaveRuleRecord(item));
 }
示例#24
0
 protected override void FailDetail(RuleRecord record)
 {
     base.FailDetail(record);
     Error(string.Format(FormatterStrings.GitHubActions_Fail, record.TargetName, record.RuleName, record.Info.Synopsis));
     LineBreak();
 }
示例#25
0
 protected override void Fail(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Plain_Fail, record.RuleName));
     FailDetail(record);
 }
示例#26
0
 protected override void Pass(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Format(FormatterStrings.Client_Pass, record.RuleName), forgroundColor: ConsoleColor.Green);
     UnbrokenContent();
 }
示例#27
0
 protected override void Fail(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Concat("    [-] ", record.RuleName));
     FailDetail(record);
 }
示例#28
0
 protected override void Pass(RuleRecord record)
 {
     BreakIfUnbrokenInfo();
     WriteLine(string.Concat("    [+] ", record.RuleName));
     UnbrokenContent();
 }
示例#29
0
 private string GetReason(RuleRecord record)
 {
     return(string.Join(" ", record.Reason));
 }
示例#30
0
 protected virtual void ErrorDetail(RuleRecord record)
 {
 }