/// <inheritdoc/> public async Task <ISite> GetSiteSettingsAsync() { ISite site; if (!_memoryCache.TryGetValue(SiteCacheKey, out site)) { var session = GetSession(); site = await session.Query <SiteSettings>().FirstOrDefaultAsync(); if (site == null) { lock (_memoryCache) { if (!_memoryCache.TryGetValue(SiteCacheKey, out site)) { site = new SiteSettings { SiteSalt = Guid.NewGuid().ToString("N"), SiteName = "My Orchard Project Application", PageSize = 10, MaxPageSize = 100, MaxPagedCount = 0, TimeZoneId = _clock.GetSystemTimeZone().TimeZoneId, Culture = "" }; session.Save(site); _memoryCache.Set(SiteCacheKey, site); _signal.SignalToken(SiteCacheKey); } } } else { _memoryCache.Set(SiteCacheKey, site); _signal.SignalToken(SiteCacheKey); } } return(site); }
/// <inheritdoc/> public async Task <ISite> GetSiteSettingsAsync() { ISite site; if (!_memoryCache.TryGetValue(SiteCacheKey, out site)) { var context = GetDbContext(); var set = context.Set <SiteSettings>(); site = await Task.FromResult(set.FirstOrDefault()); // session.Query<SiteSettings>().FirstOrDefaultAsync(); if (site == null) { lock (_memoryCache) { if (!_memoryCache.TryGetValue(SiteCacheKey, out site)) { site = new SiteSettings { SiteSalt = Guid.NewGuid().ToString("N"), SiteName = "My Application", PageTitleFormat = "{% page_title Site.SiteName, position: \"after\", separator: \" - \" %}", PageSize = 10, MaxPageSize = 100, MaxPagedCount = 0, TimeZoneId = _clock.GetSystemTimeZone().TimeZoneId, }; set.Add(site as SiteSettings); _memoryCache.Set(SiteCacheKey, site); _signal.SignalToken(SiteCacheKey); } } } else { _memoryCache.Set(SiteCacheKey, site); _signal.SignalToken(SiteCacheKey); } } return(site); }