コード例 #1
0
        private async Task <Tenant> GetActiveTenantAsync(int tenantId)
        {
            var tenant = await TenantManager.FindByIdAsync(tenantId);

            if (tenant == null)
            {
                throw new UserFriendlyException(L("UnknownTenantId{0}", tenantId));
            }

            if (!tenant.IsActive)
            {
                throw new UserFriendlyException(L("TenantIdIsNotActive{0}", tenantId));
            }

            return(tenant);
        }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: zhaohejing/yt
        protected virtual async Task <List <Tenant> > FindPossibleTenantsOfUserAsync(UserLoginInfo login)
        {
            List <User> allUsers;

            //TODO: Store all login information on host db or disable this feature for db-per-tenant architecture

            using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
            {
                allUsers = await _userManager.FindAllAsync(login);
            }

            return(allUsers
                   .Where(u => u.TenantId != null)
                   .Select(u => AsyncHelper.RunSync(() => _tenantManager.FindByIdAsync(u.TenantId.Value)))
                   .Where(t => t != null)
                   .ToList());
        }
コード例 #3
0
        public async Task SetEditionForTenant(int tenantId, int editionId)
        {
            var tenant = await _tenantManager.FindByIdAsync(tenantId);

            if (tenant.EditionId != null)
            {
                var tenantPrevEdition = _editionRepository.Get(tenant.EditionId.Value);
                await _editionNotificationSubscriber.UnSubscribeTenantToEditionChanges(tenant, tenantPrevEdition, GetTenantOwner(tenant));
            }

            var edition = _editionRepository.Get(editionId);
            var editionFeatureValues = await _editionManager.GetFeatureValuesAsync(editionId);

            await _tenantManager.SetFeatureValuesAsync(tenant.Id, editionFeatureValues.ToArray());

            await _editionNotificationSubscriber.SubscribeTenantToEditionChanges(tenant, edition, GetTenantOwner(tenant));
        }
コード例 #4
0
        public async Task <IActionResult> Index()
        {
            if (this.User.Identity.IsAuthenticated)
            {
                var user = await _userManager.GetUserAsync(this.User);

                var tenant = await _tenantManager.FindByIdAsync(user.TenantId.ToString());

                ViewData["TenantName"] = await _tenantManager.GetNameAsync(tenant);

                var users = await _tenantManager.GetTenantUsersAsync(tenant);

                ViewData["NumUsers"] = users.Count();
            }
            else
            {
                ViewData["TenantName"] = "Please sign-in";
                ViewData["NumUsers"]   = null;
            }

            return(View());
        }