Ejemplo n.º 1
0
        public static IBeforeInterceptor[] GetBeforeExecutor(MethodAroundBizModel entity, ISession session)
        {
            List <IBeforeInterceptor> executors = new List <IBeforeInterceptor>();


            if (entity != null)
            {
                //方法前只支持表达式
                foreach (var item in entity.ExpModels)
                {
                    IBeforeInterceptor executor = new MethodBeforeExpInterceptor();
                    executor.Session         = session;
                    executor.ConfigureEntity = entity;
                    executors.Add(executor);
                }

                ////再计算SQL
                //foreach (var item in entity.SqlModels)
                //{
                //    IBeforeInterceptor executor = new MethodBeforeSqlInterceptor();
                //    executor.Session = session;
                //    executor.ConfigureEntity = entity;
                //    executors.Add(executor);
                //}
                ////再调用插件
                //foreach (var item in entity.AssemblyModels)
                //{
                //    IBeforeInterceptor executor = new MethodBeforeAssemblyInterceptor();
                //    executor.Session = session;
                //    executor.ConfigureEntity = entity;
                //    executors.Add(executor);
                //}
            }
            return(executors.ToArray());
        }
Ejemplo n.º 2
0
        private static IList <MethodAroundBizModel> LoadAllPluginConfigureFromDataSource(ISession session)
        {
            List <MethodAroundBizModel> configures = new List <MethodAroundBizModel>();



            var criteria = session.CreateCriteria <MethodAroundMstModel>();
            var mstData  = criteria.List <MethodAroundMstModel>();

            foreach (var item in mstData)
            {
                //从SQL中取数,先模拟
                MethodAroundBizModel entity = new MethodAroundBizModel();
                long phid = item.Phid;

                var sqldatas = session.CreateQuery("from AddinSqlModel s where s.MstPhid=" + phid + " and SqlCatalog=" + (int)EnumCatalog.Interceptor).List <AddinSqlModel>();

                var expdatas = session.CreateQuery("from AddinExpressionModel e where e.MstPhid=" + phid).List <AddinExpressionModel>();

                var expvardatas = session.CreateQuery("from AddinExpressionVarModel v where v.MstPhid=" + phid).List <AddinExpressionVarModel>();

                var assemblydatas = session.CreateQuery("from AddinAssemblyModel a where a.MstPhid=" + phid + " and AssemblyCatalog=" + (int)EnumCatalog.Interceptor).List <AddinAssemblyModel>();

                entity.AssemblyModels = assemblydatas;
                entity.ExpVarModels   = expvardatas;
                entity.ExpModels      = expdatas;
                entity.SqlModels      = sqldatas;
                entity.MstModel       = item;

                configures.Add(entity);
            }

            return(configures);
        }
Ejemplo n.º 3
0
        public static IAfterInterceptor[] GetAfterExecutor(MethodAroundBizModel entity, ISession session)
        {
            //方法后支持SQL语句与插件

            List <IAfterInterceptor> executors = new List <IAfterInterceptor>();


            if (entity != null)
            {
                ////先计算表达式
                //foreach (var item in entity.ExpModels)
                //{
                //    IAfterInterceptor executor = new MethodAfterExpInterceptor();
                //    executor.Session = session;
                //    executor.ConfigureEntity = entity;
                //    executors.Add(executor);
                //}

                //再计算SQL
                foreach (var item in entity.SqlModels)
                {
                    IAfterInterceptor executor = new MethodAfterSqlInterceptor();
                    executor.Session         = session;
                    executor.ConfigureEntity = entity;
                    executors.Add(executor);
                }
                //再调用插件
                foreach (var item in entity.AssemblyModels)
                {
                    IAfterInterceptor executor = new MethodAfterAssemblyInterceptor();
                    executor.Session         = session;
                    executor.ConfigureEntity = entity;
                    executors.Add(executor);
                }
            }
            return(executors.ToArray());
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 增加已发布的配置
 /// </summary>
 /// <param name="key"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public static bool AddDeployedCfg(Int64 key, MethodAroundBizModel model)
 {
     return(_deployconfigures.TryAdd(key, model));
 }