Ejemplo n.º 1
0
        // 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);
        }
Ejemplo n.º 2
0
        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");
        }
Ejemplo n.º 3
0
        // 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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }