public virtual void OnParseMigratingInstance(MigratingInstanceParseContext parseContext, MigratingActivityInstance migratingInstance) { var execution = migratingInstance.ResolveRepresentativeExecution(); foreach (ExternalTaskEntity task in execution.ExternalTasks) { var migratingTask = new MigratingExternalTaskInstance(task, migratingInstance); migratingInstance.AddMigratingDependentInstance(migratingTask); parseContext.Consume(task); parseContext.Submit(migratingTask); } }
public virtual void OnParseMigratingInstance(MigratingInstanceParseContext parseContext, MigratingActivityInstance migratingInstance) { ExecutionEntity execution = migratingInstance.ResolveRepresentativeExecution(); foreach (TaskEntity task in execution.Tasks) { migratingInstance.AddMigratingDependentInstance(new MigratingUserTaskInstance(task, migratingInstance)); parseContext.Consume(task); ICollection <ICoreVariableInstance> variables = task.VariablesInternal; if (variables != null) { foreach (VariableInstanceEntity variable in variables) { // we don't need to represent ITask variables in the migrating instance structure because // they are migrated by the MigratingTaskInstance as well parseContext.Consume(variable); } } } }
public virtual void OnParseMigratingInstance(MigratingInstanceParseContext parseContext, MigratingActivityInstance migratingInstance) { ExecutionEntity scopeExecution = migratingInstance.ResolveRepresentativeExecution(); IList <IActivityExecution> concurrentInActiveExecutions = scopeExecution.FindInactiveChildExecutions(GetInnerActivity((ActivityImpl)migratingInstance.SourceScope)); //variables on ended inner instance executions need not be migrated anywhere //since they are also not represented in the tree of migrating instances, we remove // them from the parse context here to avoid a validation exception foreach (IActivityExecution execution in concurrentInActiveExecutions) { foreach (VariableInstanceEntity variable in ((ExecutionEntity)execution).VariablesInternal) { parseContext.Consume(variable); } } }