예제 #1
0
        public HttpResponseMessage Post(Contact contact)
        {
            int id = _repository.Create(contact);

            var response = new HttpResponseMessage(HttpStatusCode.Created);

            //response.Headers.Location = new Uri("/api/Contact/" + id);

            return response;
        }
        public HttpResponseMessage Post(Contact contact)
        {
            if (this.ModelState.IsValid)
            {
                var newId = repository.Values.Max(x => x.Id) + 1;
                contact.Id = newId;
                repository.Add(newId, contact);

                var response = this.Request.CreateResponse(HttpStatusCode.Created, contact);
                //response.Headers.Location = new Uri(this.Url.Link("DefaultApi", new { id = contact.Id }));
                response.Headers.Location = this.Url.ApiLink(contact.Id);
                return response;
            }
            else
            {
                var validationResult = this.ModelState.SelectMany(item => item.Value.Errors.Select(x => x.ErrorMessage + " (" + item.Key + ")"));
                throw new HttpResponseException(this.Request.CreateResponse(HttpStatusCode.BadRequest, validationResult));
            }
        }