public async Task <IEnumerable <Site> > ReloadSiteCacheAsync() { var sites = await _siteRepository.GetAllAsync(); foreach (var site in sites) { await _cache.RemoveAsync($"s{site.Id}.{CacheKey.SiteSettings}"); await _cache.RemoveAsync($"s{site.Id}.{CacheKey.SiteCss}"); } await _cache.RemoveAsync(CacheKey.Sites); return(await GetSitesFromCacheAsync()); }
public async Task <IEnumerable <Site> > GetSitesOfUserAsync(Guid userId, bool grantPermission) { userId.Validate(); List <Site> sites = new List <Site>(); if (grantPermission) { sites = (await _siteRepository.GetAllAsync()).ToList(); } else { var permissions = (await _permissionRepository.GetPermissionByUserAsync(userId)) .Where(p => p.PermissionSubject == PermissionSubjectType.Site) .ToList(); var siteIds = permissions.Select(p => p.ObjectId); foreach (var id in siteIds) { var site = await _siteRepository.GetByIDAsync(id); sites.Add(site); } } return(sites); }
private async Task <IEnumerable <Site> > GetSitesFromCacheAsync() { IEnumerable <Site> sites; var cachedSites = _cache.GetString(CacheKey.Sites); if (cachedSites == null) { sites = await _siteRepository.GetAllAsync(); if (!sites.Any()) { sites = await InsertInitialSiteAsync(); } _cache.SetString(CacheKey.Sites, JsonConvert.SerializeObject(sites)); _logger.LogTrace("Cache miss on sites: {Count} loaded", sites.Count()); } else { sites = JsonConvert.DeserializeObject <IEnumerable <Site> >(cachedSites); } foreach (var site in sites) { string key = $"s{site.Id}.{CacheKey.SiteSettings}"; var cachedSiteSettings = _cache.GetString(key); if (cachedSiteSettings == null) { site.Settings = await _siteSettingRepository.GetBySiteIdAsync(site.Id); _cache.SetString(key, JsonConvert.SerializeObject(site.Settings)); _logger.LogTrace("Cache miss on site settings for site id {Id}, {Count} loaded", site.Id, site.Settings.Count); } else { site.Settings = JsonConvert.DeserializeObject <ICollection <SiteSetting> >(cachedSiteSettings); } } return(sites); }
private async Task <IEnumerable <Site> > GetSitesFromCacheAsync() { var sites = _memoryCache.Get <IEnumerable <Site> >(CacheKey.SitePaths); if (sites == null) { sites = await _siteRepository.GetAllAsync(); if (sites.Count() == 0) { sites = await InsertInitialSiteAsync(); } _memoryCache.Set(CacheKey.SitePaths, sites); } return(sites); }
public async Task SyncPermissionsAsync() { var sites = await _siteRepository.GetAllAsync(); if (sites.Any()) { var adminRole = await _roleRepository.GetByIdAsync(1); if (adminRole != null) { if (!adminRole.IsAdmin) { _logger.LogError("Role ID 1 is not set as IsAdmin, fixing."); adminRole.IsAdmin = true; await _roleRepository.UpdateSaveAsync(-1, adminRole); } } else { _logger.LogError("Cannot find role ID 1 in order to ensure it is marked as IsAdmin"); } var permissionList = Enum.GetValues(typeof(Permission)) .Cast <Permission>() .Select(_ => _.ToString()); var currentPermissions = await _roleRepository.GetAllPermissionsAsync(); var permissionsToAdd = permissionList.Except(currentPermissions); var permissionsToRemove = currentPermissions.Except(permissionList); if (permissionsToAdd.Any() || permissionsToRemove.Any()) { if (permissionsToAdd.Any()) { var userId = await _siteLookupService.GetSystemUserId(); await _roleRepository.AddPermissionListAsync(userId, permissionsToAdd); } if (permissionsToRemove.Any()) { _roleRepository.RemovePermissionList(permissionsToRemove); } await _roleRepository.SaveAsync(); } } }
public async Task EnsureDefaultCategoryAsync() { var sites = await _siteRepository.GetAllAsync(); foreach (var site in sites) { var defaultCategory = await _newsCategoryRepository .GetDefaultCategoryAsync(site.Id); if (defaultCategory == null) { var category = new NewsCategory { IsDefault = true, Name = "News", SiteId = site.Id }; await _newsCategoryRepository.AddSaveAsync(-1, category); } } }
//Done public IQueryable <Site> GetAllAsync() { return(_SiteRepository.GetAllAsync()); }
public async Task <IEnumerable <SiteDTO> > GetAllAsync() { return(await SiteRepository.GetAllAsync()); }