public async Task <HttpResponseMessage> Put(string lotKey, UpdateLotRequest values) { if (!ModelState.IsValid) { return(new HttpResponseMessage(HttpStatusCode.BadRequest) { ReasonPhrase = ModelState.GetErrorSummary() }); } values.LotKey = lotKey; var parameters = _userIdentityProvider.SetUserIdentity(values.Map().To <SetLotAttributeParameters>()); var result = await Task.Run(() => _lotService.SetLotAttributes(parameters)); var lot = await Get(lotKey); lot.LotSummary.OldContextLotStat = result.ResultingObject.GetLotStatDescription(); return(new HttpResponseMessage(result.ToHttpStatusCode(HttpVerbs.Put)) { Content = new ObjectContent <LotQualitySummaryResponse>(lot.LotSummary, new JsonMediaTypeFormatter()), ReasonPhrase = result.Message }); }