Init commit

add security encryption and hashing: WIP
add endpoints: register user, get and save resources
add db main operations, User entity
This commit is contained in:
Alex Bezdieniezhnykh
2024-11-09 00:37:43 +02:00
commit 121052a3ef
26 changed files with 605 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
using System.Diagnostics;
using LinqToDB;
namespace Azaion.Common.Database;
public interface IDbFactory
{
Task<T> Run<T>(Func<AzaionDb, Task<T>> func);
Task Run(Func<AzaionDb, Task> func);
T Run<T>(Func<AzaionDb, T> func);
}
public class DbFactory : IDbFactory
{
private readonly DataOptions _dataOptions;
public DbFactory(string connectionString, bool useTracing = true, bool msSql = false)
{
if (string.IsNullOrEmpty(connectionString))
throw new ArgumentException("Empty connectionString", nameof(connectionString));
_dataOptions = new DataOptions()
.UsePostgreSQL(connectionString)
.UseMappingSchema(AzaionDbSchemaHolder.MappingSchema);
if (useTracing)
_ = _dataOptions.UseTracing(TraceLevel.Info, t => Console.WriteLine(t.SqlText));
}
public async Task<T> Run<T>(Func<AzaionDb, Task<T>> func)
{
await using var db = new AzaionDb(_dataOptions);
return await func(db);
}
public async Task Run(Func<AzaionDb, Task> func)
{
await using var db = new AzaionDb(_dataOptions);
await func(db);
}
public T Run<T>(Func<AzaionDb, T> func)
{
using var db = new AzaionDb(_dataOptions);
return func(db);
}
}