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()); }
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); }
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()); }
/// <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)); }