コード例 #1
0
        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;
        }