protected async Task <TenantFeatureCacheItem> GetTenantFeatureCacheItemAsync(int tenantId)
        {
            return(await _cacheManager.GetTenantFeatureCache().GetAsync(tenantId, async() =>
            {
                TTenant tenant;
                using (var uow = _unitOfWorkManager.Begin())
                {
                    using (_unitOfWorkManager.Current.SetTenantId(null))
                    {
                        tenant = await _tenantRepository.GetAsync(tenantId);
                    }

                    await uow.CompleteAsync();
                }
                var newCacheItem = new TenantFeatureCacheItem {
                    EditionId = tenant.EditionId
                };

                using (var uow = _unitOfWorkManager.Begin())
                {
                    using (_unitOfWorkManager.Current.SetTenantId(tenantId))
                    {
                        var featureSettings = await _tenantFeatureRepository.GetAllListAsync();
                        foreach (var featureSetting in featureSettings)
                        {
                            newCacheItem.FeatureValues[featureSetting.Name] = featureSetting.Value;
                        }
                    }

                    await uow.CompleteAsync();
                }

                return newCacheItem;
            }));
        }
        private async Task <TenantFeatureCacheItem> GetTenantFeatureCacheItemAsync(int tenantId)
        {
            return(await _cacheManager.GetTenantFeatureCache().GetAsync(tenantId, async() =>
            {
                var tenant = await _tenantRepository.GetAsync(tenantId);

                var newCacheItem = new TenantFeatureCacheItem {
                    EditionId = tenant.EditionId
                };

                var featureSettings = await _tenantFeatureRepository.GetAllListAsync(f => f.TenantId == tenantId);
                foreach (var featureSetting in featureSettings)
                {
                    newCacheItem.FeatureValues[featureSetting.Name] = featureSetting.Value;
                }

                return newCacheItem;
            }));
        }
Exemple #3
0
        protected virtual TenantFeatureCacheItem GetTenantFeatureCacheItem(int tenantId)
        {
            return(_cacheManager.GetTenantFeatureCache().Get(tenantId, () =>
            {
                TTenant tenant;
                using (var uow = _unitOfWorkManager.Begin())
                {
                    using (_unitOfWorkManager.Current.SetTenantId(null))
                    {
                        tenant = _tenantRepository.Get(tenantId);

                        uow.Complete();
                    }
                }

                var newCacheItem = new TenantFeatureCacheItem {
                    EditionId = tenant.EditionId
                };

                using (var uow = _unitOfWorkManager.Begin())
                {
                    using (_unitOfWorkManager.Current.EnableFilter(AbpDataFilters.MayHaveTenant))
                        using (_unitOfWorkManager.Current.SetTenantId(tenantId))
                        {
                            var featureSettings = _tenantFeatureRepository.GetAllList();
                            foreach (var featureSetting in featureSettings)
                            {
                                newCacheItem.FeatureValues[featureSetting.Name] = featureSetting.Value;
                            }

                            uow.Complete();
                        }
                }

                return newCacheItem;
            }));
        }