actually now its usable

This commit is contained in:
zznty
2023-11-13 23:17:39 +07:00
parent aecc7ee66f
commit ce07a1e86a
41 changed files with 1401 additions and 138 deletions

43
heh/DbManager.cs Normal file
View File

@@ -0,0 +1,43 @@
using System.IO;
using NLog;
using PetaPoco;
using PetaPoco.Core.Inflection;
using PetaPoco.Providers;
using Torch;
using Torch.API;
using Torch.API.Managers;
using Torch.Managers;
namespace heh;
public interface IDbManager : IManager
{
IDatabase Create(string name);
}
public class DbManager : Manager, IDbManager
{
private static readonly ILogger Log = LogManager.GetCurrentClassLogger();
#pragma warning disable CS0618
public static readonly IDbManager Static = new DbManager(TorchBase.Instance);
#pragma warning restore CS0618
public DbManager(ITorchBase torchInstance) : base(torchInstance)
{
}
public IDatabase Create(string name)
{
return DatabaseConfiguration.Build()
.UsingProvider<SQLiteDatabaseProvider>()
.UsingExceptionThrown((_, args) => Log.Error(args.Exception))
.WithAutoSelect()
.UsingConnectionString($"Data Source={Path.Combine(Torch.Config.InstancePath, $"{name}.db")};Version=3;")
.UsingDefaultMapper<ConventionMapper>(mapper =>
{
string UnFuckIt(IInflector inflector, string s) => inflector.Underscore(s).ToLower();
mapper.InflectColumnName = UnFuckIt;
mapper.InflectTableName = UnFuckIt;
})
.Create();
}
}