36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
|
using System;
|
|||
|
|
|||
|
namespace QFSW.QC.Actions
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Custom action implemented via delegates.
|
|||
|
/// For more complex actions it is usually recommended to create a new action implementing <c>ICommandAction</c>.
|
|||
|
/// </summary>
|
|||
|
public class Custom : ICommandAction
|
|||
|
{
|
|||
|
private readonly Func<bool> _isFinished;
|
|||
|
private readonly Func<bool> _startsIdle;
|
|||
|
private readonly Action<ActionContext> _start;
|
|||
|
private readonly Action<ActionContext> _finalize;
|
|||
|
|
|||
|
public Custom(
|
|||
|
Func<bool> isFinished,
|
|||
|
Func<bool> startsIdle,
|
|||
|
Action<ActionContext> start,
|
|||
|
Action<ActionContext> finalize
|
|||
|
)
|
|||
|
{
|
|||
|
_isFinished = isFinished;
|
|||
|
_startsIdle = startsIdle;
|
|||
|
_start = start;
|
|||
|
_finalize = finalize;
|
|||
|
}
|
|||
|
|
|||
|
public bool IsFinished => _isFinished();
|
|||
|
public bool StartsIdle => _startsIdle();
|
|||
|
|
|||
|
public void Start(ActionContext context) { _start(context); }
|
|||
|
public void Finalize(ActionContext context) { _finalize(context); }
|
|||
|
}
|
|||
|
|
|||
|
}
|