in Core/src/Impl/Commands/StorageManager.cs [57:82]
public async Task<StorageFormat> ValidateStorageMarkersAsync()
{
myLogger.Info($"[{DateTime.Now:s}] Validating storage markers{myId}...");
var isFlat = myStorage.ExistsAsync(Markers.Flat);
var isSingleTier = myStorage.ExistsAsync(Markers.SingleTier);
var isTwoTier = myStorage.ExistsAsync(Markers.TwoTier);
var isLowerCase = myStorage.ExistsAsync(Markers.LowerCase);
var isUpperCase = myStorage.ExistsAsync(Markers.UpperCase);
if (await isFlat)
throw new ApplicationException("The flat storage format isn't supported");
if (await isTwoTier)
throw new ApplicationException("The two-tier storage format isn't supported");
if (!await isSingleTier)
throw new ApplicationException("The single-tier storage marker is absent");
var lowerCase = await isLowerCase;
var upperCase = await isUpperCase;
if (!lowerCase && !upperCase)
return StorageFormat.Normal;
if (lowerCase && !upperCase)
return StorageFormat.LowerCase;
if (!lowerCase && upperCase)
return StorageFormat.UpperCase;
throw new ApplicationException("The storage wasn't properly configured, both lower and upper case were presented");
}