Description
This is a refactoring ticket. Certain operations contain no body (for example Touch) and thus need no generic parameters. For these methods we should provide overrides like this:
IOperationResult SendWithRetry(IOperation op)
Task<IOperationResult> SendWithRetryAsync(IOperation op);
The current methods have placeholder types for the T (object for example) and the value or body is ignored. This is confusing and may be difficult to maintain. These should inherit from a base operation class that ignores the body. OperationBase<T> should be refactored as well, with most of the logic going into OperationBase with no generic type parameters.