public HttpResponseMessage Post(ZipDistanceQuery item) { if (ModelState.IsValid) { string queryID = store.GenerateKey(); store.AddQuery <ZipDistanceQuery>(item, queryID); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, item); response.Headers.Location = new Uri(Url.Link("PostZipDistancesRoute", new { id = queryID })); return(response); } else { var validationResults = this.ModelState.SelectMany(m => m.Value.Errors.Select(x => x.ErrorMessage + "(Property: " + m.Key + ")")); throw new HttpResponseException(this.Request.CreateResponse(HttpStatusCode.BadRequest, validationResults)); } }