public static UpgradeViability ServerSupportsInPlaceUpgrades()

in Configurator/Base/Classes/ExtensionMethods.cs [1067:1117]


    public static UpgradeViability ServerSupportsInPlaceUpgrades(this Version newVersion,
      Version oldVersion,
      ServerMaturity newVersionMaturiy = ServerMaturity.Unknown,
      ServerMaturity oldVersionMaturity = ServerMaturity.Unknown)
    {
      if (newVersion == null)
      {
        throw new ArgumentNullException(nameof(oldVersion));
      }

      if (oldVersion == null)
      {
        throw new ArgumentNullException(nameof(oldVersion));
      }

      // Assign maturities if they have not been set.
      if (oldVersionMaturity == ServerMaturity.Unknown)
      {
        oldVersionMaturity = Utilities.GetServerMaturity(oldVersion);
      }

      if (newVersionMaturiy == ServerMaturity.Unknown)
      {
        newVersionMaturiy = Utilities.GetServerMaturity(newVersion);
      }

      if (oldVersion > newVersion
          || (oldVersion.Major < 8)
          || (oldVersion == newVersion))
      {
        return UpgradeViability.Unsupported;
      }
      else if (
              // Within an LTS. E.g 8.4.X LTS to 8.4.Y LTS.
              IsWithinSameLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
              // From an LTS to the next LTS series.
              || IsFromLtsToNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
              // From an LTS to an innovation release before the next LTS series.
              || IsFromLtsToInnovationBeforeNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
              // From an innovation series to the next LTS series.
              || IsFromInnovationToNextLts(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity)
              // From within an innovation series.
              || IsWithinSameInnovationSeries(newVersion, oldVersion, newVersionMaturiy, oldVersionMaturity))
      {
        return UpgradeViability.Supported;
      }
      else
      {
        return UpgradeViability.UnsupportedWithWarning;
      }
    }