VEU.WathBody/3-app/1-lib/Kit.Helpers/SqlHelperAbstract/ConnectionString.cs

63 lines
1.7 KiB
C#

using System;
using System.Text.Json.Serialization;
namespace Kit.Helpers.SqlHelperAbstract
{
public enum ConnectionStringType
{
Undefined = 0,
Postgres = 1,
SQLite = 2,
}
public interface IConnectionString
{
ConnectionStringType Type { get; }
string Value { get; }
ISqlHelper GetSqlHelper();
}
public class ConnectionString : IConnectionString
{
public ConnectionStringType Type { get; set; } = ConnectionStringType.Undefined;
private string _value = string.Empty;
public string Value
{
get => _value;
set => _value = value.ServerMapPath();
}
public virtual ISqlHelper GetSqlHelper()
{
switch (Type)
{
case ConnectionStringType.Postgres:
return Postgres.SqlHelper.Instance;
case ConnectionStringType.SQLite:
return SQLite.SqlHelper.Instance;
default:
throw new NotImplementedException();
}
}
public static SqlHelperFluent PrepareExecute(string sqlText)
{
return new ConnectionString().PrepareExecute(sqlText);
}
}
public static class ConnectionStringExtensions
{
public static SqlHelperFluent PrepareExecute(this IConnectionString connectionString, string sqlText)
{
return new SqlHelperFluent(connectionString, sqlText);
}
public static SqlHelperFluent<TEntity> PrepareExecute<TEntity>(this IConnectionString connectionString, string sqlText)
{
return new SqlHelperFluent<TEntity>(connectionString, sqlText);
}
}
}