public static async Task<bool> CheckMinimumVersion(this IAppConfigurationService configurationService, bool retrieveCached = false, string minVerKey = Constants.AppConfigurationMinVersionKey)
{
if (configurationService == null) return false;
configurationService.Mapper.EnsurePresence(minVerKey, true);
var appConfig = await configurationService.LoadAppConfig(false, retrieveCached);
if (appConfig == null) return false;
var minimumVersionMappedValue = appConfig.GetValueForKey<string>(minVerKey);
var appVerFromPlatform = configurationService.VersionService?.GetVersion();
if (appVerFromPlatform == null || minimumVersionMappedValue == null)
{
return false;
}
// Check the minimum required version first
Version versionToCheck;
return !Version.TryParse(minimumVersionMappedValue, out versionToCheck) || versionToCheck <= appVerFromPlatform;
}