public static async Task <TransferMessages.TransferCompled> Send <TSender, TCommand>(this TSender sender,
                                                                                             TCommand command, TimeSpan timeout, DataTransferManager manager, Action <string> messages, Func <ITransferData?> getdata)
            where TSender : ISender
            where TCommand : FileTransferCommand <TSender, TCommand>
        {
            command.Manager = manager;
            var id = await SendingHelper.Send <FileTransactionId, TCommand>(sender, command, messages, timeout, false);

            var tranfer = await command.Manager.AskAwaitOperation(new AwaitRequest(timeout, id.Id));

            return(await tranfer.TryStart(getdata));
        }
 public static Task Send <TSender, TCommand>(this TSender sender, TCommand command, TimeSpan timeout, Action <string> messages)
     where TCommand : SimpleCommand <TSender, TCommand>, IReporterMessage
     where TSender : ISender
 => SendingHelper.Send <object, TCommand>(sender, command, messages, timeout, true);