public override Task ExecuteBindingAsync(ModelMetadataProvider metadataProvider, HttpActionContext actionContext, CancellationToken cancellationToken)
        {
            // read the query and construct the object myself
            TestItemRenameProperty property = new TestItemRenameProperty {
                Name = actionContext.Request.RequestUri.ParseQueryString()["$Name"]
            };

            // Set the binding result here
            SetValue(actionContext, property);

            // now, we can return a completed task with no result
            TaskCompletionSource <AsyncVoid> tcs = new TaskCompletionSource <AsyncVoid>();

            tcs.SetResult(default(AsyncVoid));
            return(tcs.Task);
        }
 public HttpResponseMessage BindCustomComplexTypeFromUriWithRenamedProperty(TestItemRenameProperty item)
 {
     return(Request.CreateResponse(System.Net.HttpStatusCode.Accepted,
                                   String.Format("BindCustomComplexTypeFromUriWithRenamedProperty item.Name = {0}.", item.Name)));
 }