public void UpdateStepStatus(int newIndex)
{
// new index higher than current Index and next Index
if (newIndex > GetCurrentStepInfoIndex() && newIndex >= GetIndex(Next()))
{
for (int i = GetCurrentStepInfoIndex(); i < newIndex; i++)
{
if (StepInfos[i].stepStatus != StepStatus.success) StepInfos[i].SetStatus(StepStatus.error);
}
}
// new index lower than currentindex && lower than prev index
if (newIndex < GetCurrentStepInfoIndex() && newIndex <= GetIndex(Next()))
{
for (int i = GetCurrentStepInfoIndex(); i > newIndex; i--)
{
if (StepInfos[i].stepStatus != StepStatus.success) StepInfos[i].SetStatus(StepStatus.error);
}
}
}