Exemple #1
0
		public static WorkflowCommand Create(Guid processId, TransitionDefinition transitionDefinition, ProcessDefinition processDefinition)
		{
			if (transitionDefinition.Trigger.Type != TriggerType.Command || transitionDefinition.Trigger.Command == null)
			{
				throw new InvalidOperationException();
			}
			List<CommandParameter> commandParameters = new List<CommandParameter>(transitionDefinition.Trigger.Command.InputParameters.Count);
			commandParameters.AddRange(
				from p in transitionDefinition.Trigger.Command.InputParameters
				select new CommandParameter()
				{
					ParameterName = p.Name,
					TypeName = p.Parameter.Type.AssemblyQualifiedName,
					LocalizedName = processDefinition.GetLocalizedParameterName(p.Name, CultureInfo.CurrentCulture),
					Value = null
				});
			WorkflowCommand workflowCommand = new WorkflowCommand()
			{
				CommandName = transitionDefinition.Trigger.Command.Name,
				LocalizedName = processDefinition.GetLocalizedCommandName(transitionDefinition.Trigger.Command.Name, CultureInfo.CurrentCulture),
				Parameters = commandParameters,
				ProcessId = processId,
				ValidForActivityName = transitionDefinition.From.Name,
				ValidForStateName = transitionDefinition.From.State,
				Classifier = transitionDefinition.Classifier
			};
			return workflowCommand;
		}