Example #1
0
        public static List <DDOSRedirectorSetting> GetAll()
        {
            SiteAccessor ua = DataAccessor.CreateInstance <SiteAccessor>();
            List <DDOSRedirectorSetting> lstDomain = new List <DDOSRedirectorSetting>();

            Dictionary <int, string> dicDomain = ua.GetActiveDomains();
            List <int> lstSelectedDomain       = HttpRuntime.Cache[_CacheKey] as List <int>;

            if (lstSelectedDomain == null)
            {
                lstSelectedDomain = PopulateData();
            }

            foreach (int k in dicDomain.Keys)
            {
                if (string.Compare("System", dicDomain[k], true) == 0)
                {
                    continue;
                }
                bool flag = false;
                if (lstSelectedDomain != null && lstSelectedDomain.Contains <int>(k))
                {
                    flag = true;
                }
                lstDomain.Add(new DDOSRedirectorSetting()
                {
                    DomainName = dicDomain[k], DomainID = k, Flag = flag
                });
            }
            return(lstDomain.OrderBy(d => d.DomainName).ToList());
        }
Example #2
0
        public static List <SiteAndHost> GetAll(Service service)
        {
            string cacheKey     = string.Format("sites.all.{0}", service.Name);
            var    siteAndHosts = (List <SiteAndHost>)MemoryCache.Default[cacheKey];

            if (siteAndHosts != null)
            {
                return(siteAndHosts);
            }

            var cmSites = SiteAccessor.GetAll(service);
            var cmHosts = HostAccessor.GetAll(service);

            siteAndHosts = cmSites.Select(cmSite => new SiteAndHost()
            {
                SiteID      = cmSite.SiteID,
                DomainID    = cmSite.DomainID,
                DisplayName = cmSite.DisplayName,
                HostNames   = cmHosts.Where(h => h.SiteID == cmSite.SiteID).Select(h => h.HostName).ToList()
            }).ToList();
            siteAndHosts = siteAndHosts.Where(sh => sh.HostNames.Any()).OrderBy(sh => sh.DomainID).ToList();
            MemoryCache.Default.Add(new CacheItem(cacheKey, siteAndHosts), new CacheItemPolicy()
            {
                AbsoluteExpiration = DateTime.Now.AddHours(1)
            });
            return(siteAndHosts);
        }
Example #3
0
        private static bool InternalReloadSiteHostCache()
        {
            bool success = false;

            if (Monitor.TryEnter(s_UpdateSiteHostCacheLock))
            {
                try
                {
                    SiteAccessor  da       = DataAccessor.CreateInstance <SiteAccessor>();
                    string        filePath = HostingEnvironment.MapPath(ALL_SITES_CACHE_FILE);
                    List <cmSite> sites    = da.GetAll();
                    if (sites.Count > 0)
                    {
                        ObjectHelper.BinarySerialize <List <cmSite> >(sites, filePath);
                        HttpRuntime.Cache.Insert(ALL_SITES_CACHE_FILE
                                                 , sites
                                                 , new CacheDependency(filePath)
                                                 , Cache.NoAbsoluteExpiration
                                                 , Cache.NoSlidingExpiration
                                                 , CacheItemPriority.NotRemovable
                                                 , null
                                                 );
                    }

                    HostAccessor ha = DataAccessor.CreateInstance <HostAccessor>();
                    filePath = HostingEnvironment.MapPath(ALL_HOSTS_CACHE_FILE);

                    List <cmHost> hosts = ha.GetAll();
                    if (!string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["Init.Debug.Sites"]))
                    {
                        //only loads the sites specificed from web.config & template sites, to speed the loading for debug
                        hosts = hosts.Where(h => GetRootTemplateSites().Exists(s => s.ID == h.SiteID) || GetDebugSites().Contains(h.SiteID)).ToList();
                    }
                    if (hosts.Count > 0)
                    {
                        ObjectHelper.BinarySerialize <List <cmHost> >(hosts, filePath);
                        HttpRuntime.Cache.Insert(ALL_HOSTS_CACHE_FILE
                                                 , hosts
                                                 , new CacheDependency(filePath)
                                                 , Cache.NoAbsoluteExpiration
                                                 , Cache.NoSlidingExpiration
                                                 , CacheItemPriority.NotRemovable
                                                 , null
                                                 );
                    }


                    Dictionary <string, SiteAndHost> dictionary = new Dictionary <string, SiteAndHost>(StringComparer.InvariantCultureIgnoreCase);
                    foreach (cmHost host in hosts)
                    {
                        cmSite site = sites.FirstOrDefault(s => s.ID == host.SiteID);
                        if (site != null)
                        {
                            dictionary[host.HostName] = new SiteAndHost()
                            {
                                Site = site,
                                Host = host,
                            };
                        }
                    }
                    if (dictionary.Count > 0)
                    {
                        filePath = HostingEnvironment.MapPath(HOST_SITE_MAP_CACHE_FILE);
                        ObjectHelper.BinarySerialize <Dictionary <string, SiteAndHost> >(dictionary, filePath);
                        HttpRuntime.Cache.Insert(HOST_SITE_MAP_CACHE_FILE
                                                 , dictionary
                                                 , new CacheDependency(filePath)
                                                 , Cache.NoAbsoluteExpiration
                                                 , Cache.NoSlidingExpiration
                                                 , CacheItemPriority.NotRemovable
                                                 , null
                                                 );
                    }

                    success = true;
                }
                catch (Exception ex)
                {
                    Logger.Exception(ex);
                }
                finally
                {
                    Monitor.Exit(s_UpdateSiteHostCacheLock);
                }
            }

            return(success);
        }