Browse Source

More safety checks for LiteDb

pull/109/head
Ionite 1 year ago
parent
commit
cbe3fb7cd0
No known key found for this signature in database
  1. 31
      StabilityMatrix.Core/Database/LiteDbContext.cs

31
StabilityMatrix.Core/Database/LiteDbContext.cs

@ -46,20 +46,22 @@ public class LiteDbContext : ILiteDbContext
{
db = new LiteDatabaseAsync(":temp:");
}
// Attempt to create connection, might be in use
try
else
{
var dbPath = Path.Combine(settingsManager.LibraryDir, "StabilityMatrix.db");
db = new LiteDatabaseAsync(new ConnectionString()
// Attempt to create connection, might be in use
try
{
Filename = dbPath,
Connection = ConnectionType.Shared,
});
}
catch (IOException e)
{
logger.LogWarning("Database in use or not accessible ({Message}), using temporary database", e.Message);
var dbPath = Path.Combine(settingsManager.LibraryDir, "StabilityMatrix.db");
db = new LiteDatabaseAsync(new ConnectionString()
{
Filename = dbPath,
Connection = ConnectionType.Shared,
});
}
catch (IOException e)
{
logger.LogWarning("Database in use or not accessible ({Message}), using temporary database", e.Message);
}
}
// Fallback to temporary database
@ -136,12 +138,15 @@ public class LiteDbContext : ILiteDbContext
return changed;
}
public async Task<GithubCacheEntry?> GetGithubCacheEntry(string cacheKey)
public async Task<GithubCacheEntry?> GetGithubCacheEntry(string? cacheKey)
{
if (string.IsNullOrEmpty(cacheKey)) return null;
if (await GithubCache.FindByIdAsync(cacheKey).ConfigureAwait(false) is { } result)
{
return result;
}
return null;
}

Loading…
Cancel
Save