private void UpdateStatus()

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);
      }
    }