private void CreateContext(IHttpContext httpContext, string portalPath, string virtualPath, bool isPortalRoute) { foreach (VirtualResourcesElement resource in config.VirtualResources) { SetVirtualResourceData(resource.Name, new VirtualResourceData(resource.Namespace, resource.Assembly)); } PortalRequest request = CreateRequest(httpContext, portalPath, virtualPath, isPortalRoute); PortalResponse response = new PortalResponse(this); Request = request; Response = response; AddConfigOptions(this, request); if (isPortalRoute) { int firstSlashIndex = portalPath.IndexOf('/', 1); int length = firstSlashIndex >= 0 ? firstSlashIndex : portalPath.Length; request.TenantName = TenantCache.GetTenantName(httpContext.Request.Url.Host); if (!Compare.IsNullOrEmpty(request.TenantName)) { request.VirtualPath = "/Tenants/" + request.TenantName + request.VirtualPath; } Section = TenantCache.GetSectionOrDefault(request.TenantName, portalPath.Length == 1 ? null : portalPath.Substring(1, length - 1)); AddRouteContext(request, response, Section); AddControllerResult(this, request, Section); } PortalTrace.Write("PortalRequestModule", "CreateContext", "PortalContext created."); PortalTrace.Write("PortalRequestModule", "CreateContext", "Setup={0}, AllowPhysicalPages={1}, jQuery Version={2}", config.Setup, config.Routes.AllowPhysicalPages, config.JQuery.Version); }
private string GetTenancyNameOrNull() { if (!AbpSession.TenantId.HasValue) { return(null); } return(TenantCache.GetOrNull(AbpSession.TenantId.Value)?.TenancyName); }