/// <summary> /// Initializes a new instance of the <see cref="DynamicCommandDataLoaderTrigger"/> class. /// </summary> /// <param name="command">The dynamic command causing the triggers.</param> /// <param name="triggerOptions">The trigger options.</param> public DynamicCommandDataLoaderTrigger(IDynamicCommand command, CommandTriggerOptions triggerOptions) : base(command?.Name) { _command = command ?? throw new ArgumentNullException(nameof(command)); _triggerOptions = triggerOptions; _command.IsExecutingChanged += OnIsExecutingChanged; }
/// <summary> /// Adds a <see cref="IDynamicCommand"/> trigger. /// </summary> /// <remarks> /// The name of the trigger is the name of the <paramref name="command"/>. /// </remarks> /// <typeparam name="TBuilder">The type of builder.</typeparam> /// <param name="dataLoaderBuilder">This builder.</param> /// <param name="command">The dynamic command causing the triggers.</param> /// <param name="triggerExecution">The trigger options.</param> /// <returns><see cref="IDataLoaderBuilder"/></returns> public static TBuilder TriggerOnCommandExecution <TBuilder>( this TBuilder dataLoaderBuilder, IDynamicCommand command, CommandTriggerOptions triggerExecution = CommandTriggerOptions.TriggerBeforeCommandExecution) where TBuilder : IDataLoaderBuilder => dataLoaderBuilder.WithTrigger(new DynamicCommandDataLoaderTrigger(command, triggerExecution));