in Configurator/Core/Server/ServerInstallationManager.cs [594:655]
private void UpdateStatus(ChainedInstallerEventArgs ciea, ServerInstallationStatusEventArgs status)
{
switch (ciea.Action)
{
case ChainedInstallerAction.StartInstallation:
_minPos = _maxPos = _step = _position = _progress = 0;
break;
case ChainedInstallerAction.ProgressSetRange:
_minPos = ciea.ProgressMin;
_maxPos = ciea.ProgressMax;
_step = 1;
_position = 0;
if (_progress > 0)
{
_progress = 50;
}
break;
case ChainedInstallerAction.ProgressSetStep:
_step = ciea.ProgressStep;
break;
case ChainedInstallerAction.ProgressSetPosition:
if (ciea.ProgressPosition != _maxPos || _position != 0)
{
SetPosition(ciea.ProgressPosition);
}
break;
case ChainedInstallerAction.ProgressSingleStep:
SetPosition(_position + _step);
break;
}
if (_progress < 0)
{
_progress = 0;
}
if (_progress > 100)
{
_progress = 100;
}
status.Progress = _progress;
if (StatusChanged == null)
{
return;
}
if (!AppConfiguration.ConsoleMode
&& Application.OpenForms.Count > 0
&& Application.OpenForms[0].InvokeRequired)
{
Application.OpenForms[0].Invoke((MethodInvoker)(() => StatusChanged(status)));
}
else
{
StatusChanged(status);
}
}