public RuleEngineDispatcher(ILinkCache linkCache, IDispatcher dispatcher, ILogicInstancesStore logicInstancesStore, IDriverNodesStore driverNodesStore, INodeInstanceCache nodeInstanceCache, ILogicInterfaceInstanceCache logicInterfaceInstanceCache, ILogger <RuleEngineDispatcher> logger) { _linkCache = linkCache; _dispatcher = dispatcher; _logicInstancesStore = logicInstancesStore; _driverNodesStore = driverNodesStore; _nodeInstanceCache = nodeInstanceCache; _logicInterfaceInstanceCache = logicInterfaceInstanceCache; _logger = logger; }
public static async Task <LogicMock> CreateLogicMock( string name, IDispatcher dispatcher, ILogicInstanceCache instanceCache, ILogicInterfaceInstanceCache interfaceInstanceCache, ILogicInstancesStore logicInstances) { var ruleInstance = new RuleInstance { ObjId = Guid.NewGuid(), Name = "Logic_" + name }; var inputTemplate = new RuleInterfaceTemplate { ObjId = Guid.NewGuid(), Name = "Input", ParameterDataType = RuleInterfaceParameterDataType.Integer, IsLinkableParameter = true }; var input = new RuleInterfaceInstance { ObjId = Guid.NewGuid(), This2RuleInstanceNavigation = ruleInstance, This2RuleInstance = ruleInstance.ObjId, This2RuleInterfaceTemplateNavigation = inputTemplate, This2RuleInterfaceTemplate = inputTemplate.ObjId }; var outputTemplate = new RuleInterfaceTemplate { ObjId = Guid.NewGuid(), Name = "Output", ParameterDataType = RuleInterfaceParameterDataType.Integer, IsLinkableParameter = true }; var output = new RuleInterfaceInstance { ObjId = Guid.NewGuid(), This2RuleInstanceNavigation = ruleInstance, This2RuleInstance = ruleInstance.ObjId, This2RuleInterfaceTemplateNavigation = outputTemplate, This2RuleInterfaceTemplate = outputTemplate.ObjId }; ruleInstance.RuleInterfaceInstance.Add(input); ruleInstance.RuleInterfaceInstance.Add(output); var mock = new LogicMock(new RuleContextMock(ruleInstance, dispatcher)); await mock.Start(); instanceCache?.Add(ruleInstance.ObjId, ruleInstance); interfaceInstanceCache?.Add(input.ObjId, input); interfaceInstanceCache?.Add(output.ObjId, output); logicInstances?.Add(ruleInstance, mock); return(mock); }
public LinkCache(IConfiguration configuration, ILogicInterfaceInstanceCache logicInterfaceCache) : base(configuration) { _logicInterfaceCache = logicInterfaceCache; }