Example #1
0
        // PUT api/Albums/5
        public HttpResponseMessage PutAlbum(int id, Album album)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            var albumToUpdate = db.Albums.FirstOrDefault(a => a.AlbumId == id);

            if (albumToUpdate != null && album != null)
            {
                albumToUpdate.AlbumTitle = album.AlbumTitle ?? albumToUpdate.AlbumTitle;
                albumToUpdate.AlbumYear = album.AlbumYear ?? albumToUpdate.AlbumYear;
                albumToUpdate.Producer = album.Producer ?? albumToUpdate.Producer;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            db.Entry(albumToUpdate).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");
        }
Example #3
0
        // POST api/Albums
        public HttpResponseMessage PostAlbum(Album album)
        {
            if (ModelState.IsValid)
            {
                foreach (var artist in album.Artists)
                {
                    db.Artists.Attach(artist);
                }

                db.Albums.Add(album);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, album);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = album.AlbumId }));
                return response;
            }
            else
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }
        }
Example #4
0
        internal static void AddNewAlbum(string title, string producer, int? year, string applicationType, string artistName)
        {
            Artist artist = AllArtists.FirstOrDefault(a => a.ArtistName == artistName);
            if (artist == null)
            {
                Console.WriteLine("Artist doesn't exist.");
                return;
            }

            // Add an Accept header for JSON format.
            Client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue(applicationType));

            var album = new Album
            {
                AlbumTitle = title,
                AlbumYear = year,
                Producer = producer
            };

            album.Artists.Add(artist);

            HttpResponseMessage response = null;

            if (applicationType == "application/json")
            {
                response = Client.PostAsJsonAsync("api/Albums", album).Result;
            }
            else
            {
                response = Client.PostAsXmlAsync("api/Albums", album).Result;
            }

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine("Album added!");
                int albumID = int.Parse(response.Headers.Location.Segments[3]);
                album.AlbumId = albumID;
                artist.Albums.Add(album);
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
            }
        }
Example #5
0
        private static void UpdateAlbum(string artistName, string title, string newTitle, int? year, string producer, string applicationType)
        {
            if (string.IsNullOrWhiteSpace(title))
            {
                Console.WriteLine("Album title cannot be empty.");
            }

            var artist = AllArtists.FirstOrDefault(a => a.ArtistName == artistName);

            if (artist == null)
            {
                Console.WriteLine("No such artist.");
            }

            var album = artist.Albums.FirstOrDefault(a => a.AlbumTitle == title);

            if (album == null)
            {
                Console.WriteLine("No such album.");
            }

            var modelAlbum = new Album
            {
                AlbumTitle = newTitle,
                AlbumYear = year,
                Producer = producer
            };

            HttpResponseMessage response = null;

            if (applicationType == "application/json")
            {
                response = Client.PutAsJsonAsync("api/Albums/" + album.AlbumId, modelAlbum).Result;
            }
            else
            {
                response = Client.PutAsXmlAsync("api/Albums/" + album.AlbumId, modelAlbum).Result;
            }

            if (response.IsSuccessStatusCode)
            {
                album.AlbumTitle = modelAlbum.AlbumTitle ?? album.AlbumTitle;
                album.AlbumYear = modelAlbum.AlbumYear ?? album.AlbumYear;
                album.Producer = modelAlbum.Producer ?? album.Producer;
                Console.WriteLine("Album updated!");
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
            }
        }