logging improvements

This commit is contained in:
Shaun Walker
2019-10-22 18:16:04 -04:00
parent 135fe2d61a
commit e710fd61ca
6 changed files with 98 additions and 43 deletions

View File

@ -10,39 +10,49 @@ namespace Oqtane.Repository
{
private MasterDBContext db;
private readonly string aliasname;
private readonly IAliasRepository _aliasrepository;
private readonly ITenantRepository _tenantrepository;
private readonly IAliasRepository Aliases;
private readonly ITenantRepository Tenants;
public TenantResolver(MasterDBContext context, IHttpContextAccessor accessor, IAliasRepository aliasrepository, ITenantRepository tenantrepository)
public TenantResolver(MasterDBContext context, IHttpContextAccessor accessor, IAliasRepository Aliases, ITenantRepository Tenants)
{
db = context;
_aliasrepository = aliasrepository;
_tenantrepository = tenantrepository;
this.Aliases = Aliases;
this.Tenants = Tenants;
aliasname = "";
// get alias based on request context
aliasname = accessor.HttpContext.Request.Host.Value;
string path = accessor.HttpContext.Request.Path.Value;
string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[1] == "api" && segments[0] != "~")
if (accessor.HttpContext != null)
{
aliasname += "/" + segments[0];
}
if (aliasname.EndsWith("/"))
{
aliasname = aliasname.Substring(0, aliasname.Length - 1);
aliasname = accessor.HttpContext.Request.Host.Value;
string path = accessor.HttpContext.Request.Path.Value;
string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[1] == "api" && segments[0] != "~")
{
aliasname += "/" + segments[0];
}
if (aliasname.EndsWith("/"))
{
aliasname = aliasname.Substring(0, aliasname.Length - 1);
}
}
}
public Alias GetAlias()
{
IEnumerable<Alias> aliases = _aliasrepository.GetAliases(); // cached
IEnumerable<Alias> aliases = Aliases.GetAliases(); // cached
return aliases.Where(item => item.Name == aliasname).FirstOrDefault();
}
public Tenant GetTenant()
{
IEnumerable<Tenant> tenants = _tenantrepository.GetTenants(); // cached
return tenants.Where(item => item.TenantId == GetAlias().TenantId).FirstOrDefault();
Tenant tenant = null;
Alias alias = GetAlias();
if (alias != null)
{
IEnumerable<Tenant> tenants = Tenants.GetTenants(); // cached
tenant = tenants.Where(item => item.TenantId == alias.TenantId).FirstOrDefault();
}
return tenant;
}
}
}