// POST api/Songs public HttpResponseMessage PostSong(Song song) { if (ModelState.IsValid) { db.Songs.Add(song); db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, song); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = song.SongId })); return response; } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } }
public static void AddSong(HttpClient client, Song song) { HttpResponseMessage response; if (client.DefaultRequestHeaders.Accept.Contains(new MediaTypeWithQualityHeaderValue("application/json"))) { response = client.PostAsJsonAsync("api/songs", song).Result; } else { response = client.PostAsXmlAsync("api/songs", song).Result; } if (response.IsSuccessStatusCode) { Console.WriteLine("Artist {0} added successfully", song.Title); } else { Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); } }
// PUT api/Songs/5 public HttpResponseMessage PutSong(int id, Song song) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } if (id != song.SongId) { return Request.CreateResponse(HttpStatusCode.BadRequest); } db.Entry(song).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); } return Request.CreateResponse(HttpStatusCode.OK); }