Example #1
0
 private static OneOf <StatenodeId, string> StatenodeIdFor(StatenodeId sourceId, Target target) =>
 target.Match <OneOf <StatenodeId, string> >(
     absolute => absolute.Id,
     sibling => sourceId.Sibling(sibling.StatenodeName, sibling.ChildStatenodesNames),
     child => sourceId.Child(child.StatenodeName, child.ChildStatenodesNames),
     self => sourceId,
     uniquelyIdentified => uniquelyIdentified.Id);
Example #2
0
 internal StartDelayedTransitionAction(StatenodeId statenodeId, TimeSpan delay)
 {
     StatenodeId = statenodeId;
     Delay       = delay;
 }
Example #3
0
 public InitializeEvent(StatenodeId id) => StatenodeId = id; // TODO: probably limit this to Compund & Orthogonal
Example #4
0
 public DelayedEvent(StatenodeId statenodeId, TimeSpan delay) :
     base($"{statenodeId}:after:{delay.TotalMilliseconds}")
 {
     _statenodeId = statenodeId;
     Data         = delay;
 }
Example #5
0
 public DoneEvent(StatenodeId statenodeId) : base($"{statenodeId}.done") => _statenodeId = statenodeId;
Example #6
0
 internal static ParsedStatenode GetTargetStatenode(this Target target, StatenodeId sourceId, Func <OneOf <StatenodeId, string>, ParsedStatenode> getStatenode) =>
 getStatenode(StatenodeIdFor(sourceId, target));
Example #7
0
 internal static IEnumerable <ParsedStatenode> GetTargetStatenodes(this IEnumerable <Target> targets, StatenodeId sourceId, Func <OneOf <StatenodeId, string>, ParsedStatenode> getStatenode) =>
 targets.Select(target => getStatenode(StatenodeIdFor(sourceId, target)));
Example #8
0
 internal static string GetId(this ServiceDefinition serviceDefinition, StatenodeId statenodeId, int serviceIndex)
 => serviceDefinition.Id.ValueOr($"{statenodeId.String}:service#{serviceIndex}");