public static DependencyReferenceToken Get(string identifier)
        {
            DependencyReferenceToken value = null;

            if (_reference.TryGetValue(identifier, out value) == false)
            {
                value = new DependencyReferenceToken(DateTime.Now);
                _reference.Add(identifier, value);
            }

            return(value);
        }
        static void InternalTimerCallback(object sender)
        {
            Epi.Web.WCF.SurveyService.IDataService dataService;
            dataService = new Epi.Web.WCF.SurveyService.DataService();
            CacheDependencyRequest request = new CacheDependencyRequest();

            request.Criteria.SurveyIdList = new List <string>(_reference.Keys);
            CacheDependencyResponse       cacheDependencyResponse = (CacheDependencyResponse)dataService.GetCacheDependencyInfo(request);
            Dictionary <string, DateTime> response = cacheDependencyResponse.SurveyDependency;

            foreach (KeyValuePair <string, DateTime> kvp in response)
            {
                if (_reference.ContainsKey(kvp.Key))
                {
                    _reference[kvp.Key].ChangeIfGreater(kvp.Value);
                }
                else
                {
                    DependencyReferenceToken dependencyUpdateToken = new DependencyReferenceToken(kvp.Value);
                    _reference.Add(kvp.Key, dependencyUpdateToken);
                }
            }
        }
        public ProxyDependency(string identifier)
        {
            DependencyReferenceToken dependencyReferenceToken = ProxyDependencyReference.Get(identifier);

            dependencyReferenceToken.Changed += new DependencyChangedEventHandler(ProxyDependency_Changed);
        }