public static T TriggeredBy <T>(this T command, RealtimeCommand triggerCommand) where T : RealtimeCommand { command.RecordTrigger(triggerCommand); return(command); }
public static DelayCommand Create(TimeSpan delay, RealtimeCommand command) => new DelayCommand(delay, command);
public void RecordTrigger(RealtimeCommand trigger) { TriggeredByMessage += $"{trigger.Name}:{trigger.Id}"; }
private DelayCommand(TimeSpan delay, RealtimeCommand commandToQueue) { Delay = delay; CommandToQueue = commandToQueue; CommandToQueue.TriggeredBy(this); }