public async Task WhenAsync(MergePatchPickwaveDto c)
        {
            var idObj         = (c as IMergePatchPickwave).PickwaveId;
            var uriParameters = new PickwaveUriParameters();

            uriParameters.Id = idObj;

            var req  = new PickwavePatchRequest(uriParameters, (MergePatchPickwaveDto)c);
            var resp = await _ramlClient.Pickwave.Patch(req);

            PickwaveProxyUtils.ThrowOnHttpResponseError(resp);
        }
        public async Task <IPickwaveState> GetAsync(long?pickwaveId)
        {
            IPickwaveState state         = null;
            var            idObj         = pickwaveId;
            var            uriParameters = new PickwaveUriParameters();

            uriParameters.Id = idObj;

            var req = new PickwaveGetRequest(uriParameters);

            var resp = await _ramlClient.Pickwave.Get(req);

            PickwaveProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToPickwaveState();
            return(state);
        }
        public async Task WhenAsync(DeletePickwaveDto c)
        {
            var idObj         = (c as IDeletePickwave).PickwaveId;
            var uriParameters = new PickwaveUriParameters();

            uriParameters.Id = idObj;

            var q = new PickwaveDeleteQuery();

            q.CommandId   = c.CommandId;
            q.RequesterId = c.RequesterId;
            q.Version     = Convert.ToString(c.Version);

            var req = new PickwaveDeleteRequest(uriParameters);

            req.Query = q;

            var resp = await _ramlClient.Pickwave.Delete(req);

            PickwaveProxyUtils.ThrowOnHttpResponseError(resp);
        }