public HttpResponseMessage Patch(string id, ExpandoObject user) { try { string newName = null; if (user.HasProperty("Name")) newName = ((dynamic)user).Name; if (newName != null) { var savedUser = _userRepository.Get(ObjectId.Parse(id)); savedUser.SetName(newName); _userRepository.Update(savedUser); } } catch (NullReferenceException ex) { return Request.CreateResponse(HttpStatusCode.NotFound, ex.Message); } catch (Exception ex) { return Request.CreateResponse( HttpStatusCode.InternalServerError, ex.Message); } var response = Request.CreateResponse(HttpStatusCode.OK); response.Headers.Add( "Link", this.GetLinkHeader<TodoModel[]>( Request, response, "/todos")); response.Headers.Add("Type", typeof(UserModel).Name); return response; }