예제 #1
0
 /// <summary>
 /// Begin the record checking.
 /// </summary>
 protected void BeginCheck
 (
     [NotNull] RuleContext context
 )
 {
     _context = context;
     _report  = new RuleReport();
 }
예제 #2
0
        public RecordReport CheckRecord
        (
            [NotNull] RuleContext context
        )
        {
            RecordReport result = new RecordReport
            {
                Description = context.Client.FormatRecord
                              (
                    context.BriefFormat,
                    context.Record.Mfn
                              ),
                Index = context.Record.FM("903"),
                Mfn   = context.Record.Mfn
            };

            RuleUtility.RenumberFields
            (
                context.Record
            );

            result.Gold = 1000;
            int bonus = 0;

            foreach (IrbisRule rule in Rules)
            {
                RuleReport oneReport = rule.CheckRecord(context);
                result.Defects.AddRange(oneReport.Defects);
                result.Gold -= oneReport.Damage;
                bonus       += oneReport.Bonus;
            }

            if (result.Gold >= 900)
            {
                result.Gold += bonus;
            }

            return(result);
        }