///
/// Copyright (c) 2019 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using log4net;
using Common;
using Config.Entities;
using TBF.UiBridge;
namespace TBF.Rig.TestMethods.Counter
{
public class CounterSeq : Sequences.SequenceBase
{
private static readonly ILog log = LogManager.GetLogger(typeof(CounterSeq));
///
/// Counter method sequence
///
/// Test entity
///
/// Event.Done . . . . . . . OK
///
public IList Execute(Test test, int counterIdx0, int repetitionNr, bool isLastRepetition, DebugMode mode)
{
if (Program.LocalSettings.Counters == null || Program.LocalSettings.Counters.Length < counterIdx0 + 1)
{
int[] oriCounters = Program.LocalSettings.Counters;
Program.LocalSettings.Counters = new int[counterIdx0 + 1];
if (oriCounters != null)
{
for (int i = 0; i < oriCounters.Length; i++) Program.LocalSettings.Counters[i] = oriCounters[i];
}
}
Program.LocalSettings.Counters[counterIdx0] = Program.LocalSettings.Counters[counterIdx0] + 1;
TBF.UiBridge.Bridge.OnSaveSettings(this, null);
/// Update results
var testName = Common.Utils.GetTestName(test.Name, test.Repeats, repetitionNr);
var testResults = BatchRslts.GetTestRslt(testName, test.Part);
global::Results.Utils.GetCounterStates(testResults, Program.LocalSettings.Counters);
if (testResults != null)
{
testResults.TestDone = true;
}
Bridge.OnTestCompleted(this, new TestCompletedEventArgs(testName, testResults));
return new List { Event.Done };
}
}
}