public AbstractWonkaOrchestrator(T poCommand, StringBuilder psRules, OrchestrationInitData poOrchInitData, string psGroveId = "", uint pnGroveIndex = 0) { msRulesContents = psRules; Init(poCommand, poOrchInitData); moInitData = poOrchInitData; moRulesEngine = new WonkaBreRulesEngine(msRulesContents, poOrchInitData.BlockchainDataSources, poOrchInitData.BlockchainCustomOpFunctions, poOrchInitData.AttributesMetadataSource, true); if (!String.IsNullOrEmpty(psGroveId) && (pnGroveIndex > 0)) { moRulesEngine.GroveId = psGroveId; moRulesEngine.GroveIndex = pnGroveIndex; } if (poOrchInitData.DefaultBlockchainDataSource != null) { moRulesEngine.DefaultSource = poOrchInitData.DefaultBlockchainDataSource.SourceId; } SerializeRulesEngineToBlockchain(); }
private void Init(T poCommand, OrchestrationInitData poOrchInitData) { WonkaRefEnvironment WonkaRefEnv = null; if (poOrchInitData == null) { throw new WonkaOrchestratorException("ERROR! Initialization for orchestration has not been provided."); } if (poOrchInitData.AttributesMetadataSource == null) { throw new WonkaOrchestratorException("ERROR! Initialization data for metadata retrieval has not been provided."); } if ((poOrchInitData.BlockchainDataSources == null) || (poOrchInitData.BlockchainDataSources.Count == 0)) { if (poOrchInitData.DefaultBlockchainDataSource != null) { Dictionary <string, WonkaBizSource> BlockchainDataSources = new Dictionary <string, WonkaBizSource>(); Dictionary <PropertyInfo, WonkaRefAttr> PropMap = poCommand.GetPropertyMap(); // Set Commentary Attributes foreach (PropertyInfo TmpProperty in PropMap.Keys) { WonkaRefAttr TempAttr = PropMap[TmpProperty]; BlockchainDataSources[TempAttr.AttrName] = poOrchInitData.DefaultBlockchainDataSource; } poOrchInitData.BlockchainDataSources = BlockchainDataSources; } } if ((poOrchInitData.BlockchainDataSources == null) || (poOrchInitData.BlockchainDataSources.Count == 0)) { throw new WonkaOrchestratorException("ERROR! Initialization for data retrieval metadata has not been provided."); } try { WonkaRefEnv = WonkaRefEnvironment.GetInstance(); } catch (Exception ex) { WonkaRefEnv = WonkaRefEnvironment.CreateInstance(false, poOrchInitData.AttributesMetadataSource); // NOTE: Should/could contract be deployed here along with metadata (i.e., Attributes)? } }
public SalesTransactionGenerator(SalesTrxCreateCommand command, StringBuilder psRulesContents, OrchestrationInitData poInitData) : base(command, psRulesContents, poInitData, "NewSaleGroup", 1) { // NOTE: Not necessary here // base.SerializeRulesEngineToBlockchain(); }
public WonkaOrchestratorProxy(T poCommand, OrchestrationInitData poOrchInitData) { Init(poCommand, poOrchInitData); moInitData = poOrchInitData; }