public async Task ValidateStorageMarkersAsync()

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