コード例 #1
0
 public AddDataSourceViewModel()
 {
     SelectedSourceSystem   = SourceSystems.FirstOrDefault();
     SelectedTenant         = Tenants.FirstOrDefault();
     SelectedDataSourceType = DataSourceType.FlatFile;
     SelectedConnection     = Connections.FirstOrDefault();
 }
コード例 #2
0
        public override Task <AppTenant> ResolveAsync(HttpContext context)
        {
            var tenant = Tenants.FirstOrDefault(t => (context.Request.Path.Value?.Contains(t.Id) ?? false) ||
                                                context.Request.Path.StartsWithSegments(new PathString("/" + t.DisplayName)));

            return(Task.FromResult(tenant));
        }
コード例 #3
0
ファイル: TenantSwitcher.cs プロジェクト: OlafMd/MedCon1.0
        //------------------------------ MISC METHODS --------------------------------------------

        public void SwitchTenant(string TenantID)
        {
            Guid ID = Guid.Empty;

            if (Guid.TryParse(TenantID, out ID))
            {
                CurrentTenant = Tenants.FirstOrDefault(l => l.ID == ID);
            }
        }
コード例 #4
0
        /// <inheritdoc />
        protected override Task <TenantContext <AppTenant> > ResolveAsync(HttpContext context)
        {
            TenantContext <AppTenant> tenantContext = null;
            AppTenant tenant = Tenants.FirstOrDefault(t => PredicateResolver().Invoke(context, t));

            if (tenant != null)
            {
                int postion = GetTenantPositionWithPredicateResolver(context);
                tenantContext = new TenantContext <AppTenant>(tenant, postion);
            }

            return(Task.FromResult(tenantContext));
        }
コード例 #5
0
        /// <summary>
        /// Resolves a tenant request using hostname
        /// </summary>
        /// <param name="request">The request</param>
        /// <returns>The tenant or null</returns>
        public ITenant Resolve(IOwinRequest request)
        {
            var httpContext = request.Context.Get <HttpContextWrapper>("System.Web.HttpContextBase");
            var routeData   = RouteTable.Routes.GetRouteData(httpContext);

            if (routeData == null || routeData.Values.ContainsKey(RouteName) == false)
            {
                return(Tenants.First());
            }

            var tenant = Tenants.FirstOrDefault(x => x.Name == routeData.Values[RouteName].ToString());

            return(tenant ?? Tenants.First());
        }
コード例 #6
0
        public static string RaaiVanURL(Guid?applicationId)
        {
            ITenant tenant = RaaiVanSettings.SAASBasedMultiTenancy ? null : Tenants.FirstOrDefault(u => u.Id == applicationId);
            string  val    = get_value(applicationId, RVSettingsItem.SystemURL);

            if (!string.IsNullOrEmpty(val) && val[val.Length - 1] == '/')
            {
                val = val.Substring(0, val.Length - 1);
            }

            return(tenant == null || string.IsNullOrEmpty(tenant.Domain) ?
                   (string.IsNullOrEmpty(val) ? "http://127.0.0.1" : val) :
                   tenant.Protocol + "://" + tenant.Domain);
        }
コード例 #7
0
        /// <summary>
        ///     Handles the Navigate event of the EntityNotificationService control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EntityInfoEventArgs" /> instance containing the event data.</param>
        private void EntityNotificationService_Navigate(object sender, EntityInfoEventArgs e)
        {
            if (SelectedTenant != null && SelectedTenant.Id != e.TenantId)
            {
                var tenantInfo = Tenants.FirstOrDefault(t => t.Id == e.TenantId);

                if (tenantInfo != null)
                {
                    SelectedTenant = tenantInfo;
                }
            }

            long   id;
            string val = e.Id;

            if (long.TryParse(e.Id, out id))
            {
                string alias;

                if (AliasMap.TryGetValue(id, out alias))
                {
                    long resolvedId = VerifyAliasMap(id, alias);

                    if (resolvedId != id)
                    {
                        if (AliasMap.TryGetValue(resolvedId, out alias))
                        {
                            val = alias;
                        }
                        else
                        {
                            val = resolvedId.ToString( );
                        }
                    }
                    else
                    {
                        val = alias;
                    }
                }
            }

            SelectedText = val;
        }
コード例 #8
0
        public async Task <IActionResult> RequestToken([FromBody] UserCredentials credentials)
        {
            // Determine Api Key Exists
            Tenant tenant        = null;
            var    requestApiKey = Request.Headers["x-api-key"].FirstOrDefault();

            if (!string.IsNullOrEmpty(requestApiKey))
            {
                tenant = _tenants.FirstOrDefault(t => string.Equals(t.ApiKey, requestApiKey, StringComparison.InvariantCultureIgnoreCase));
            }

            if (tenant is null)
            {
                return(Unauthorized("Tenant doesn't exist"));
            }

            // Validate User Login
            var user = await _userManager.FindByEmailAsync(credentials.Email);

            if (user is null)
            {
                return(BadRequest("User doesn't exist"));
            }

            var signInResult = await _signInManager.PasswordSignInAsync(user, credentials.Password, false, false);

            if (!signInResult.Succeeded)
            {
                return(BadRequest("Wrong password"));
            }

            // Create Token
            var claims = await _userManager.GetClaimsAsync(user);

            var token = _tokenBuilder.BuildJwtToken(claims, tenant);

            return(Ok(new
            {
                AccessToken = token,
                Expiry = DateTime.UtcNow.AddMinutes(_jwtOptions.TokenExpiry)
            }));
        }
コード例 #9
0
        /// <summary>
        /// Resolves a tenant request using hostname
        /// </summary>
        /// <param name="request">The request</param>
        /// <returns>The tenant or null</returns>
        public ITenant Resolve(IOwinRequest request)
        {
            var host = request.Uri.Host;

            return(Tenants.FirstOrDefault(x => x.Domain == host));
        }
コード例 #10
0
        public override Task <AppTenant> ResolveAsync(HttpContext context)
        {
            var tenant = Tenants.FirstOrDefault(t => context.Request.Host.Value == t.IpAddress);

            return(Task.FromResult(tenant));
        }