public async Task <HttpResponseMessage> Update([FromBody] Value value) { Task <long> updateResult = repository.UpdateValue(value); try { await updateResult; if (updateResult.Result < 1) { Console.WriteLine("No documents matched update query"); return(Request.CreateResponse(HttpStatusCode.NotFound)); } else { if (updateResult.Result > 1) { // should not happen: Ids are unique Console.WriteLine("More than one document matched update query"); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } } return(Request.CreateResponse(HttpStatusCode.OK, value)); } catch (Exception ex) { Console.WriteLine(ex.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }