public ProcessModel AddEventCatcherFor <TEvent>(string name) where TEvent : class { var eventCatcher = new TypedEventCatcher <TEvent>(); var element = NamedProcessElement <IEventCatcher> .Create(name, eventCatcher); return(AddEventCatcher(element)); }
// 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))); }
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); }
public static NamedProcessElement <T> Create( string name, T element ) => NamedProcessElement <T> .Create(name, element);
public ProcessModel AddExclusiveGateway(string name) => AddElement(NamedProcessElement <ExclusiveGateway> .Create(name, new ExclusiveGateway()));
public ProcessModel AddParallelGateway(string name) => AddElement(NamedProcessElement <ParallelGateway> .Create(name, new ParallelGateway()));
public ProcessModel AddActivity(NamedProcessElement <Activity> activity) => AddElement(activity);
// validate null public ProcessModel AddDataAssociation( string name, DataAssociation association ) => AddElement( NamedProcessElement <DataAssociation> .Create(name, association) );
public ProcessModel AddEventThrower(NamedProcessElement <IEventThrower> thrower) => AddElement(thrower);
public ProcessModel AddEventThrower(string name, IEventThrower thrower) => AddEventThrower(NamedProcessElement <IEventThrower> .Create(name, thrower));
public ProcessModel AddBoundaryEventCatcher( NamedProcessElement <IEventCatcher> catcher, string activityName ) => AddElement(catcher);
public ProcessModel AddEventCatcher(NamedProcessElement <IEventCatcher> catcher) => AddElement(catcher);
public ProcessModel AddEventCatcher(string name, IEventCatcher catcher) => AddEventCatcher(NamedProcessElement <IEventCatcher> .Create(name, catcher));
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>(); }