示例#1
0
        public ProcessModel AddEventCatcherFor <TEvent>(string name)
            where TEvent : class
        {
            var eventCatcher = new TypedEventCatcher <TEvent>();
            var element      = NamedProcessElement <IEventCatcher> .Create(name, eventCatcher);

            return(AddEventCatcher(element));
        }
示例#2
0
        // TODO: Create a new EventName
        public ProcessModel AddEventThrower <T>()
        {
            var thrower = (IEventThrower)Activator.CreateInstance <T>();
            var name    = typeof(T).Name;

            if (name.EndsWith("EventThrower"))
            {
                name = name.Substring(0, name.Length - "EventThrower".Length);
            }

            return(AddEventThrower(NamedProcessElement <IEventThrower> .Create(name, thrower)));
        }
示例#3
0
        public void ReturnElementByName()
        {
            var obj = NamedProcessElement <IEventThrower> .Create("middle", SilentEventThrower.Instance);

            var processModel = ProcessModel.Create()
                               .AddEventCatcher(
                "start",
                CatchAnyEventCatcher.Create()
                )
                               .AddEventThrower(obj)
                               .AddEventThrower(
                "end",
                SilentEventThrower.Instance
                )
                               .AddSequenceFlow("start", "middle")
                               .AddSequenceFlow("middle", "end");

            processModel.GetElementByName("middle").Should().Be(obj);
        }
示例#4
0
 public static NamedProcessElement <T> Create(
     string name,
     T element
     ) => NamedProcessElement <T> .Create(name, element);
示例#5
0
 public ProcessModel AddExclusiveGateway(string name)
 => AddElement(NamedProcessElement <ExclusiveGateway> .Create(name, new ExclusiveGateway()));
示例#6
0
 public ProcessModel AddParallelGateway(string name)
 => AddElement(NamedProcessElement <ParallelGateway> .Create(name, new ParallelGateway()));
示例#7
0
 public ProcessModel AddActivity(NamedProcessElement <Activity> activity)
 => AddElement(activity);
示例#8
0
 // validate null
 public ProcessModel AddDataAssociation(
     string name,
     DataAssociation association
     ) => AddElement(
     NamedProcessElement <DataAssociation> .Create(name, association)
     );
示例#9
0
 public ProcessModel AddEventThrower(NamedProcessElement <IEventThrower> thrower)
 => AddElement(thrower);
示例#10
0
 public ProcessModel AddEventThrower(string name, IEventThrower thrower)
 => AddEventThrower(NamedProcessElement <IEventThrower> .Create(name, thrower));
示例#11
0
 public ProcessModel AddBoundaryEventCatcher(
     NamedProcessElement <IEventCatcher> catcher,
     string activityName
     ) => AddElement(catcher);
示例#12
0
 public ProcessModel AddEventCatcher(NamedProcessElement <IEventCatcher> catcher)
 => AddElement(catcher);
示例#13
0
 public ProcessModel AddEventCatcher(string name, IEventCatcher catcher)
 => AddEventCatcher(NamedProcessElement <IEventCatcher> .Create(name, catcher));
示例#14
0
 public ProcessModel AddNullElement(string name, NullElement n)
 => AddElement(NamedProcessElement <NullElement> .Create(name, n));
 public void ThrowArgumentNullExceptionWhenElementIsNull()
 {
     Action sut = () => NamedProcessElement <NullElement> .Create("a", null);
 }
        public void ThrowArgumentNullExceptionWhenNameIsNull()
        {
            Action sut = () => NamedProcessElement <NullElement> .Create(null, new NullElement());

            sut.Should().Throw <ArgumentNullException>();
        }