/// <summary> /// 动态获取路线,根据决策节点设置条件表达式,自动去判断流转的路线 /// </summary> /// <returns>路线</returns> public Transition GetTransition() { Command CMD = GetExecuteCmd(); IDbConnection connect = DapperFactory.CreateConnection(CMD.PROVIDERNAME, CMD.CONNECTE); try { DataTable resultSet = new DataTable(Guid.NewGuid().ToString()); using (IDataReader reader = connect.ExecuteReader(CMD.SCRIPT, new { INSTANCEID = INSTANCEID })) { resultSet.Load(reader); reader.Close(); } Transition instance = null; List <Transition> transitions = QueryWorkflowNode(NID); if (resultSet.Rows.Count > 0) { foreach (Transition transition in transitions) { if (resultSet.Select(transition.EXPRESSION).Length > 0) { instance = transition; break; } } } Assert.CheckNull(instance, "instance"); return(instance); } catch (Exception ex) { throw new WorkflowException(ex, INSTANCEID); } }
/// <summary> /// 动态获取路线,根据决策节点设置条件表达式,自动去判断流转的路线 /// </summary> /// <returns>路线</returns> public Transition GetTransition() { Command command = GetExecuteCmd(); WorkflowConfig config = WorkflowConfig.GetInstance(command.ID); IDbConnection connection = DapperFactory.CreateConnection(config.ProviderName, config.ConnectionString); try { DataTable resultSet = new DataTable(Guid.NewGuid().ToString()); using (IDataReader reader = connection.ExecuteReader(command.Text, new { InstanceID = InstanceID })) { resultSet.Load(reader); reader.Close(); } Transition instance = null; List <Transition> transitions = QueryWorkflowNode(NID); if (resultSet.Rows.Count > 0) { foreach (Transition transition in transitions) { if (resultSet.Select(transition.Expression).Length > 0) { instance = transition; break; } } } return(instance); } catch (Exception ex) { throw ex; } }
internal static IDbConnection CreateWorkflowConnection() { SmartflowConfiguration config = ConfigurationManager.GetSection("smartflowConfiguration") as SmartflowConfiguration; return(DapperFactory.CreateConnection(config.ProviderName, config.ConnectionString)); }
public static IDbConnection CreateWorkflowConnection() { SmartflowConfiguration config = ConfigurationManager.GetSection("smartflowConfiguration") as SmartflowConfiguration; Assert.CheckNull(config, "SmartflowConfiguration"); return(DapperFactory.CreateConnection(config.ProviderName, config.ConnectionString)); }
public static IDbConnection CreateWorkflowConnection() { SmartflowConfiguration config = ConfigurationManager.GetSection("smartflowConfiguration") as SmartflowConfiguration; Assert.CheckNull(config, "smartflowConfiguration"); Assert.StringNull(config.ConnectionString, "ConnectionString"); Assert.StringNull(config.DatabaseCategory, "DatabaseCategory"); DatabaseCategory dbc; if (Enum.TryParse(config.DatabaseCategory, true, out dbc) || String.IsNullOrEmpty(config.ConnectionString)) { return(DapperFactory.CreateConnection(dbc, config.ConnectionString)); } else { throw new WorkflowException(ResourceManage.GetString(ResourceManage.CONNECTION_CONFIG)); } }