public async Task <ISiteSettings> Fetch(Guid siteId) { var site = await _queries.Fetch(siteId, CancellationToken); _dataProtector.UnProtect(site); return(site); }
//public int GetSiteIdByFolderNonAsync(string folderName) //{ // return siteRepo.GetSiteIdByFolderNonAsync(folderName); //} public async Task <ISiteSettings> Fetch(Guid siteGuid) { ISiteSettings site = await siteRepo.Fetch(siteGuid, CancellationToken); dataProtector.UnProtect(site); return(site); }
private async Task <TenantContext <SiteSettings> > ResolveByFolderAsync(HttpContext context) { var siteFolderName = context.Request.Path.StartingSegment(); if (siteFolderName.Length == 0) { siteFolderName = "root"; } TenantContext <SiteSettings> tenantContext = null; CancellationToken cancellationToken = context?.RequestAborted ?? CancellationToken.None; ISiteSettings site = await siteRepo.FetchByFolderName(siteFolderName, cancellationToken); if (site != null) { dataProtector.UnProtect(site); tenantContext = new TenantContext <SiteSettings>((SiteSettings)site); } return(tenantContext); }
public async Task <SiteContext> ResolveSite( string hostName, string pathStartingSegment, CancellationToken cancellationToken = default(CancellationToken) ) { ISiteSettings site = null; if (_multiTenantOptions.Mode == MultiTenantMode.FolderName) { if (string.IsNullOrWhiteSpace(pathStartingSegment)) { pathStartingSegment = "root"; } site = await _siteQueries.FetchByFolderName(pathStartingSegment, cancellationToken); } else { site = await _siteQueries.Fetch(hostName, cancellationToken); } if (site != null) { _dataProtector.UnProtect(site); return(new SiteContext(site)); } return(null); }
public ISiteSettings Resolve(HttpContext context) { requestPath = context.Request.Path.Value; // this seems to behave different in IIS vs weblistener string pathBase = context.Request.PathBase; // this is true for folder sites if (pathBase.Length > 0) { if (!requestPath.StartsWith(pathBase)) { requestPath = pathBase + requestPath; } } host = context.Request.Host.Value; int siteId = -1; if (multiTenantOptions.Mode == MultiTenantMode.FolderName) { string siteFolderName = GetFirstFolderSegment(requestPath); if (siteFolderName.Length == 0) { siteFolderName = "root"; } siteId = siteRepo.GetSiteIdByFolderNonAsync(siteFolderName); if (siteId == -1) { // error would be expected here on initial setup // when the db has not been set up and no site exists throw new InvalidOperationException("could not resolve site id"); } else { ISiteSettings site = siteRepo.FetchNonAsync(siteId); dataProtector.UnProtect(site); return(site); } } else { ISiteSettings site = siteRepo.FetchNonAsync(host); dataProtector.UnProtect(site); return(site); } }
private async Task <TenantContext <SiteSettings> > ResolveByFolderAsync(HttpContext context) { var siteFolderName = await GetContextIdentifier(context); TenantContext <SiteSettings> tenantContext = null; CancellationToken cancellationToken = context?.RequestAborted ?? CancellationToken.None; var site = await siteRepo.FetchByFolderName(siteFolderName, cancellationToken); if (site != null) { dataProtector.UnProtect(site); tenantContext = new TenantContext <SiteSettings>((SiteSettings)site); } return(tenantContext); }