示例#1
0
 /// <summary>
 /// CTOR finally called by injection CTOR. Good to be used instantiating with DI.
 /// </summary>
 /// <param name="organizationKey"></param>
 /// <param name="organizationContextResolver"></param>
 /// <param name="siteList"></param>
 public SiteContext(string organizationKey, OrganizationContextResolver organizationContextResolver, SiteList siteList)
 {
     SiteList = siteList;
     OrganizationContextResolver = organizationContextResolver;
     // copies the resolved OrganizationContext properties to this siteContext
     Resolve(this, organizationKey);
 }
示例#2
0
        private SiteContext Resolve(SiteContext siteContext, string organizationKey)
        {
            var siteSettings = SiteList.FirstOrDefault(sl => sl.OrganizationKey == (organizationKey ?? string.Empty));

            if (siteSettings == null)
            {
                return(null);
            }

            OrganizationContextResolver.CopyContextTo(siteContext, organizationKey); // shallow-copy all OrganizationContext properties
            siteContext.HostName           = siteSettings.HostName;
            siteContext.UrlSegmentValue    = siteSettings.UrlSegmentValue;
            siteContext.FolderName         = siteSettings.FolderName;
            siteContext.IdentityCookieName = siteSettings.IdentityCookieName;
            siteContext.SessionName        = siteSettings.SessionName;
            siteContext.HideInMenu         = siteSettings.HideInMenu;

            return(siteContext);
        }
示例#3
0
 /// <summary>
 /// Mainly helper CTOR called by injection CTOR.
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="organizationContextResolver"></param>
 /// <param name="siteList"></param>
 public SiteContext(HttpContext httpContext, OrganizationContextResolver organizationContextResolver,
                    SiteList siteList) :
     this(ResolveOrganizationKey(httpContext, siteList), organizationContextResolver, siteList)
 {
     SetMostRecentOrganizationCookie(httpContext, base.OrganizationKey);
 }
示例#4
0
 /// <summary>
 /// CTOR for dependency injection.
 /// </summary>
 /// <param name="httpContextAccessor"></param>
 /// <param name="organizationContextResolver"></param>
 /// <param name="siteList"></param>
 public SiteContext(IHttpContextAccessor httpContextAccessor, OrganizationContextResolver organizationContextResolver, SiteList siteList) :
     this(httpContextAccessor?.HttpContext, organizationContextResolver, siteList)
 {
 }
示例#5
0
 public OrganizationRouteConstraint(OrganizationContextResolver organizationContextResolver, SiteList siteList)
 {
     _organizationContextResolver = organizationContextResolver;
     _siteList = siteList;
 }