Exemplo n.º 1
0
 protected virtual void OnResultExecute(IDbResultContext ctx)
 {
     if(ctx.ResultHandled) {
         return;
     }
     this.OnResultExecuteInternal(ctx);
 }
Exemplo n.º 2
0
 protected virtual void CacheExecuteResult(IDataCacheSetting setting, IDbResultContext ctx)
 {
     var executeContext = ctx.ExecuteContext;
     var key = this.GetCacheKey(setting, executeContext);
     var cache = this.CacheService.GetCache(setting.CacheName);
     object result;
     if (setting.CacheAction == CacheAction.Remove) {
         result = ctx.ResultHandler.ExecuteResult(executeContext, ctx.ResultType, ctx.ResultInstance);
         cache.Remove(key);
     } else {
         if(!cache.TryGet(key, out result)) {
             lock(key) {
                 if(!cache.TryGet(key, out result)) {
                     result = ctx.ResultHandler.ExecuteResult(executeContext, ctx.ResultType, ctx.ResultInstance);
                     var dependencyName = setting.DependencyName;
                     ICacheDependency dependency = null;
                     if (!string.IsNullOrEmpty(dependencyName)) {
                         dependency = ObjectService.Current.GetOrCreateObject<ICacheDependency>(dependencyName);
                     }
                     if (dependency != null) {
                         cache.Add(key, result, dependency);
                     } else {
                         cache.Add(key, result);
                     }
                 }
             }
         }
     }
     ctx.ResultInstance = result;
     ctx.ResultHandled = true;
 }
Exemplo n.º 3
0
 protected virtual void OnResultExecute(IDbResultContext ctx)
 {
     if (ctx.ResultHandled)
     {
         return;
     }
     this.OnResultExecuteInternal(ctx);
 }
Exemplo n.º 4
0
 protected override void OnResultExecuteInternal(IDbResultContext ctx)
 {
     var settting = ctx.ExecuteContext.Statement.ConfigSetting.ToCachedSetting<DataCacheSetting>("cache");
     if (settting != null) {
         if (settting.Cacheable) {
             this.CacheExecuteResult(settting, ctx);
         }
     }
 }
Exemplo n.º 5
0
        protected override void OnResultExecuteInternal(IDbResultContext ctx)
        {
            var settting = ctx.ExecuteContext.Statement.ConfigSetting.ToCachedSetting <DataCacheSetting>("cache");

            if (settting != null)
            {
                if (settting.Cacheable)
                {
                    this.CacheExecuteResult(settting, ctx);
                }
            }
        }
Exemplo n.º 6
0
        protected virtual void CacheExecuteResult(IDataCacheSetting setting, IDbResultContext ctx)
        {
            var    executeContext = ctx.ExecuteContext;
            var    key            = this.GetCacheKey(setting, executeContext);
            var    cache          = this.CacheService.GetCache(setting.CacheName);
            object result;

            if (setting.CacheAction == CacheAction.Remove)
            {
                result = ctx.ResultHandler.ExecuteResult(executeContext, ctx.ResultType, ctx.ResultInstance);
                cache.Remove(key);
            }
            else
            {
                if (!cache.TryGet(key, out result))
                {
                    lock (key) {
                        if (!cache.TryGet(key, out result))
                        {
                            result = ctx.ResultHandler.ExecuteResult(executeContext, ctx.ResultType, ctx.ResultInstance);
                            var dependencyName          = setting.DependencyName;
                            ICacheDependency dependency = null;
                            if (!string.IsNullOrEmpty(dependencyName))
                            {
                                dependency = ObjectService.Current.GetOrCreateObject <ICacheDependency>(dependencyName);
                            }
                            if (dependency != null)
                            {
                                cache.Add(key, result, dependency);
                            }
                            else
                            {
                                cache.Add(key, result);
                            }
                        }
                    }
                }
            }
            ctx.ResultInstance = result;
            ctx.ResultHandled  = true;
        }
Exemplo n.º 7
0
 void IResultModule.OnResultExecute(IDbResultContext ctx)
 {
     this.OnResultExecute(ctx);
 }
Exemplo n.º 8
0
 protected abstract void OnResultExecuteInternal(IDbResultContext ctx);
Exemplo n.º 9
0
 void IResultModule.OnResultExecute(IDbResultContext ctx)
 {
     this.OnResultExecute(ctx);
 }
Exemplo n.º 10
0
 protected abstract void OnResultExecuteInternal(IDbResultContext ctx);