// Copyright (C) Stichting Deltares 2017. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using System;
using Ringtoets.Common.Utils.Properties;
namespace Ringtoets.Common.Utils
{
///
/// This class is capable of comparing Ringtoets database versions.
///
public static class RingtoetsVersionHelper
{
private const string validDatabaseVersion = "5";
private const string currentDatabaseVersion = "17.1";
///
/// Gets the current database version.
///
/// The database version.
public static string GetCurrentDatabaseVersion()
{
return currentDatabaseVersion;
}
///
/// Returns if the is newer than the current database version.
///
/// The version to compare.
/// true if is newer than the current
/// database version, false otherwise.
public static bool IsNewerThanCurrent(string version)
{
var versionComparer = new RingtoetsVersionComparer();
return versionComparer.Compare(version, currentDatabaseVersion) > 0;
}
///
/// Returns if the is a valid database version.
///
/// The version to compare.
/// true if is a valid database version,
/// false otherwise.
/// A valid version must be greater than .
public static bool IsValidVersion(string version)
{
var versionComparer = new RingtoetsVersionComparer();
return versionComparer.Compare(version, validDatabaseVersion) >= 0;
}
///
/// Validates if the is a valid database version.
///
/// The version to compare.
/// Thrown when is not a
/// valid Ringtoets database version.
///
public static void ValidateVersion(string version)
{
if (!IsValidVersion(version))
{
throw new ArgumentException(string.Format(Resources.RingtoetsVersionHelper_Version_0_Not_Valid, version), version);
}
}
}
}