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;
                }
            });
        }