public async Task <HttpResponseMessage> Delete(string id) { if (id == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } try { Task <long> deleteResult = repository.RemoveValue(id); await deleteResult; if (deleteResult.Result < 1) { Console.WriteLine("No documents matched delete query"); return(Request.CreateResponse(HttpStatusCode.NotFound)); } else { if (deleteResult.Result > 1) { // should not happen: Ids are unique Console.WriteLine("More than one document matched delete query"); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } } return(Request.CreateResponse(HttpStatusCode.NoContent)); } catch (Exception ex) { Console.WriteLine(ex.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }