/// <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);
        }
Beispiel #2
0
        /// <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);
        }