Um eine Ribbon bar Aktion auf alle selektierten Datensätze mit Hilfe eines Hintegrundprozesses zu implementieren, kann man auf die Implementierung eines eigenen Igniters verzichten. Die Aktion implementiert stattdessen das Interface IIgnitableAction und der Worker IIgnitableWorkItem

public class ClientActionContactsChangeAssignedTo : ClientActionGridMassOperationBase, IIgnitableAction

In dem Fall kann der Igniter OperationFromActionOverSelectedRecordsIgniter verwendet werden.

MassOperationIgniter = typeof(OperationFromActionOverSelectedRecordsIgniter).AssemblyQualifiedName;

Interface Implementierung

Es müssen eine Reihe von Eigenschaften implementiert werden.

string MessageOnSuccess { get; set; }
string MessageOnError { get; set; }
string MessageOnStart { get; set; }
string ProgressBarProcessName { get; set; }
string ProgressBarProcessDescription { get; set; }
string Caption { get; }

Eine Methode, die den Typ des entsprechenden Workers liefert.

public Type GetWorkItemType()
{
    return typeof(MyWorkerTask);
}

In der Methode Ignite kann man beispielsweise dem instanziierten Worker weitere Parameter mitgeben.

public void Ignite(IIgnitableWorkItem task, Guid tempKey, Guid? taskExecutionId, Dictionary<string, object> parameters, JsonFormResult result)
{
    MyWorkerTask myTask = (MyWorkerTask)task;
    myTask.MyParameter = myParameter;
}