Files
Walleby/Wallet/WalletConnectionFactory.cs
T
TheXamlGuy bc5023c8ac Bug fixes
2024-07-05 21:57:01 +01:00

36 lines
1012 B
C#

using Wallet.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Hosting;
namespace Wallet;
public class WalletConnectionFactory(IHostEnvironment environment) :
IWalletConnectionFactory
{
public async Task<WalletConnection?> Create(string name, string key)
{
string databaseFile = $"{Path.Combine(environment.ContentRootPath, name)}.wallet";
if (File.Exists(databaseFile))
{
try
{
return await Task.Run(async () =>
{
WalletConnection connection = new($"Data Source={databaseFile};Mode=ReadWriteCreate;Pooling=true;Password={key}");
using WalletContext context = new(connection);
await context.Database.OpenConnectionAsync().ConfigureAwait(false);
return connection;
});
}
catch
{
return null;
}
}
return null;
}
}