DocSpace-buildtools/common/ASC.VoipService/Dao/AbstractDao.cs

35 lines
1.0 KiB
C#

namespace ASC.VoipService.Dao;
public class AbstractDao
{
private readonly string _dbid = "default";
private readonly Lazy<VoipDbContext> _lazyVoipDbContext;
protected VoipDbContext VoipDbContext { get => _lazyVoipDbContext.Value; }
protected int TenantID
{
get;
private set;
}
protected AbstractDao(DbContextManager<VoipDbContext> dbOptions, TenantManager tenantManager)
{
_lazyVoipDbContext = new Lazy<VoipDbContext>(() => dbOptions.Get(_dbid));
TenantID = tenantManager.GetCurrentTenant().Id;
}
protected string GetTenantColumnName(string table)
{
const string tenant = "tenant_id";
if (!table.Contains(' ')) return tenant;
return table.Substring(table.IndexOf(" ", StringComparison.Ordinal)).Trim() + "." + tenant;
}
protected static Guid ToGuid(object guid)
{
var str = guid as string;
return !string.IsNullOrEmpty(str) ? new Guid(str) : Guid.Empty;
}
}