internal SignalNowMessageAction(SignalNowClient client, string recipient, bool groupRecipient, string messageType, string messagePayload, bool payloadIsJson, CancellationToken cancellationToken) { this.cancellationToken = cancellationToken; client.ConnectionChanged += Client_ConnectionChanged; this.action = new Action(() => { Started = true; try { client.SendMessage(recipient, groupRecipient, messageType, messagePayload, payloadIsJson).Wait(cancellationToken); } finally { Completed = true; } }); }