Пример #1
0
 public PluginData <T> CreatePluginData <T>(T data, PluginDataId id = null)
     where T : Schema, new()
 {
     return(id == null
         ? new PluginData <T>(data)
     {
         ExecutionContext = _executionContext
     }
         : new PluginData <T>(data, id)
     {
         ExecutionContext = _executionContext
     });
 }
Пример #2
0
        /// <summary>
        /// Updates the Plugin-Plugin Dependency Graph
        /// </summary>
        private void UpdateDependencyGraph(PluginId destinationPluginId, PluginDataId dataId)
        {
            if (!_createdBy.ContainsKey(dataId))
            {
                throw new WorkflowEngineException("Cannot resolve data dependency");
            }
            var sourcePlugin = _createdBy[dataId];

            // Add edge only if it doesn't exist
            if (!_graph.TryGetEdge(sourcePlugin, destinationPluginId, out SEdge <PluginId> existingEdge))
            {
                _graph.AddVerticesAndEdge(new SEdge <PluginId>(sourcePlugin, destinationPluginId));
            }
        }
Пример #3
0
 public PluginDataList(IEnumerable <Schema> data, PluginDataId id, Version version)
 {
     Id      = id;
     Version = version;
     PopulateData(data);
 }
Пример #4
0
 public PluginDataList(IEnumerable <Schema> data, PluginDataId id)
 {
     Id = id;
     PopulateData(data);
 }
Пример #5
0
 public PluginData(T data, PluginDataId id, Version version)
 {
     Id      = id;
     Data    = data;
     Version = version;
 }
Пример #6
0
 public PluginData(T data, PluginDataId id) : this(data, id, GetSchemaVersion(data))
 {
 }
Пример #7
0
 public PluginData <T> GetPluginOutputFromId <T>(PluginDataId id)
     where T : Schema, new()
 {
     return(_pluginOutputs[id] as PluginData <T>);
 }
Пример #8
0
 private void UpdateDataConsumer(PluginId pluginId, PluginDataId dataId)
 {
     _consumes.SafeAdd(pluginId, dataId);
     UpdateDependencyGraph(pluginId, dataId);
 }