// PUT api/Artists/5 public HttpResponseMessage PutArtist(int id, Artist artist) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var artistToUpdate = db.Artists.FirstOrDefault(a => a.ArtistId == id); if (artistToUpdate != null && artist != null) { artistToUpdate.ArtistName = artist.ArtistName ?? artistToUpdate.ArtistName; artistToUpdate.Country = artist.Country ?? artistToUpdate.Country; artistToUpdate.DateOfBirth = artist.DateOfBirth ?? artistToUpdate.DateOfBirth; } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } db.Entry(artistToUpdate).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); } return Request.CreateResponse(HttpStatusCode.OK); }
static void Main() { var baseUrl = "http://localhost:12243/"; var contentType = "application/json"; var requester = new HttpRequester(baseUrl, contentType); // Test album Creation Album album = new Album { Producer = "Pesho", Title = "Testov album", ReleaseDate = DateTime.Now }; requester.Post<Album>("api/album", album); Console.WriteLine("Simple Album added!"); Song song = new Song { Genre = "RnB", Title = "Shake it!", Year = DateTime.Now.AddYears(-20) }; Artist artist = new Artist { Name = "Pesho Zlia", BirthDate = new DateTime(1950, 1, 1), Country = "Germany" }; album.Songs.Add(song); album.Artists.Add(artist); requester.Post<Album>("api/album", album); Console.WriteLine("Album added!"); // Test albums Retrieving var retrievedAlbums = requester.Get<IList<Album>>("api/album/"); foreach (var retrievedAlbum in retrievedAlbums) { Console.WriteLine("Album found! Title:" + retrievedAlbum.Title); } // Test one album Retrieving var getedAlbum = requester.Get<Album>("api/album/" + retrievedAlbums[0].AlbumId); Console.WriteLine("First Album found! Title:" + getedAlbum.Title); // Test album updating getedAlbum.Title = "Updated Title"; requester.Put<Album>("api/album/" + getedAlbum.AlbumId, getedAlbum); Console.WriteLine("Title updated!"); // Check new title getedAlbum = requester.Get<Album>("api/album/" + retrievedAlbums[0].AlbumId); Console.WriteLine("First Album found! Title:" + getedAlbum.Title); // Add Album newAlbum = new Album { Producer = "Pesho", Title = "Testov album", ReleaseDate = DateTime.Now }; //Delete the album! requester.Delete<Album>("api/album/" + getedAlbum.AlbumId, getedAlbum); Console.WriteLine("Album deleted"); }
// POST api/Artists public HttpResponseMessage PostArtist(Artist artist) { if (ModelState.IsValid) { db.Artists.Add(artist); db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, artist); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = artist.ArtistId })); return response; } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } }
internal static void AddNewArtist(string name, string country, DateTime? dateOfBirth, string applicationType) { if (AllArtists.Any(x => x.ArtistName == name)) { Console.WriteLine("Artist already exists."); return; } // Add an Accept header for JSON format. Client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue(applicationType)); var artist = new Artist { ArtistName = name, Country = country, DateOfBirth = dateOfBirth, }; HttpResponseMessage response = null; if (applicationType == "application/json") { response = Client.PostAsJsonAsync("api/Artists", artist).Result; } else { response = Client.PostAsXmlAsync("api/Artists", artist).Result; } if (response.IsSuccessStatusCode) { Console.WriteLine("Artist added!"); int artistID = int.Parse(response.Headers.Location.Segments[3]); artist.ArtistId = artistID; allArtists.Add(artist); } else { Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); } }
private static void UpdateArtist(string name, string newName, string country, DateTime? dateOfBirth, string applicationType) { if (string.IsNullOrWhiteSpace(name)) { Console.WriteLine("Artist name cannot be empty."); } var artist = AllArtists.FirstOrDefault(a => a.ArtistName == name); if (artist == null) { Console.WriteLine("No such artist."); } var modelArtist = new Artist { ArtistName = newName, Country = country, DateOfBirth = dateOfBirth }; HttpResponseMessage response = null; if (applicationType == "application/json") { response = Client.PutAsJsonAsync("api/Artists/" + artist.ArtistId, modelArtist).Result; } else { response = Client.PutAsXmlAsync("api/Artists/" + artist.ArtistId, modelArtist).Result; } if (response.IsSuccessStatusCode) { artist.ArtistName = modelArtist.ArtistName ?? artist.ArtistName; artist.Country = modelArtist.Country ?? artist.Country; artist.DateOfBirth = modelArtist.DateOfBirth ?? artist.DateOfBirth; Console.WriteLine("Artist updated!"); } else { Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); } }