Ejemplo n.º 1
0
 public void Register(string name, CallbackReturnHandler <object> callback)
 {
     if (!innerMapping.ContainsKey(name))
     {
         innerMapping.Add(name, callback);
     }
 }
Ejemplo n.º 2
0
        public T GetEntity <T, P>(string category, P para, TimeSpan durationTime, CallbackReturnHandler <P, T> handler)
            where T : class
        {
            //Dictionary<string, T> cacheDict = HttpRuntime.Cache[category] as Dictionary<string, T>;

            //string key = para.ToString().ToLower();

            //if (cacheDict == null)
            //{
            //    cacheDict = new Dictionary<string, T>();

            //    DateTime absoluteTime = DateTime.MaxValue;
            //    if (durationTime != TimeSpan.MaxValue)
            //    {
            //        absoluteTime = DateTime.Now.Add(durationTime);
            //    }

            //    HttpRuntime.Cache.Insert(category, cacheDict, null, absoluteTime, TimeSpan.Zero);
            //}

            //T result = null;
            //if (cacheDict.ContainsKey(key))
            //{
            //    result = cacheDict[key];
            //}
            //else
            //{
            //     result = handler(para);

            //     if (result != null)
            //     {
            //         cacheDict.Add(key, result);
            //     }
            //}


            string name = string.Format("{0}_{1}", category, para.ToString()).ToLower();

            T result = HttpRuntime.Cache[name] as T;

            if (result == null)
            {
                result = handler(para);

                if (result != null)
                {
                    DateTime absoluteTime = DateTime.MaxValue;
                    if (durationTime != TimeSpan.MaxValue)
                    {
                        absoluteTime = DateTime.Now.Add(durationTime);
                    }
                    HttpRuntime.Cache.Insert(name, result, null, absoluteTime, TimeSpan.Zero);
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Catch all the exception to invoke the delegate.
        /// </summary>
        /// <typeparam name="T">the generic type of the return value of the delegate.</typeparam>
        /// <param name="callback">the delegate.</param>
        /// <returns>the result of the delegate.</returns>
        public static T CatchAll <T>(CallbackReturnHandler <T> callback)
        {
            try
            {
                return(callback());
            }
            catch
            {
            }

            return(default(T));
        }
Ejemplo n.º 4
0
        public T GetEntity <T>(string name, TimeSpan durationTime, CallbackReturnHandler <T> handler)
            where T : class
        {
            name = name.ToLower();

            T result = HttpRuntime.Cache[name] as T;

            if (result == null)
            {
                result = handler();

                if (result != null)
                {
                    DateTime absoluteTime = DateTime.MaxValue;
                    if (durationTime != TimeSpan.MaxValue)
                    {
                        absoluteTime = DateTime.Now.Add(durationTime);
                    }
                    HttpRuntime.Cache.Insert(name, result, null, absoluteTime, TimeSpan.Zero);
                }
            }

            return(result);
        }