public async Task WhenAsync(MergePatchShipmentDto c)
        {
            var idObj         = (c as IMergePatchShipment).ShipmentId;
            var uriParameters = new ShipmentUriParameters();

            uriParameters.Id = idObj;

            var req  = new ShipmentPatchRequest(uriParameters, (MergePatchShipmentDto)c);
            var resp = await _ramlClient.Shipment.Patch(req);

            ShipmentProxyUtils.ThrowOnHttpResponseError(resp);
        }
        public async Task <IShipmentState> GetAsync(string shipmentId)
        {
            IShipmentState state         = null;
            var            idObj         = shipmentId;
            var            uriParameters = new ShipmentUriParameters();

            uriParameters.Id = idObj;

            var req = new ShipmentGetRequest(uriParameters);

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

            ShipmentProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToShipmentState();
            return(state);
        }
        public async Task WhenAsync(DeleteShipmentDto c)
        {
            var idObj         = (c as IDeleteShipment).ShipmentId;
            var uriParameters = new ShipmentUriParameters();

            uriParameters.Id = idObj;

            var q = new ShipmentDeleteQuery();

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

            var req = new ShipmentDeleteRequest(uriParameters);

            req.Query = q;

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

            ShipmentProxyUtils.ThrowOnHttpResponseError(resp);
        }