// GET api/musicartist public IEnumerable<KeyValuePair<int, string>> Get() { using (var ctx = new StoreEntities()) { var artistsRaw = ctx.Artists.Select(q => new { q.Name, q.ArtistId }).ToList(); var artists = artistsRaw.Select(q => new KeyValuePair<int, string>(q.ArtistId, q.Name)); return artists; } }
// GET api/moviegenre public IEnumerable<KeyValuePair<int, string>> Get() { using (var ctx = new StoreEntities()) { var movieGenresRaw = ctx.MovieGenres.Select(q => new { q.MovieGenreId, q.Name }).ToList(); var movieGenres = movieGenresRaw.Select(q => new KeyValuePair<int, string>(q.MovieGenreId, q.Name)); return movieGenres; } }
// PUT api/moviedvd/5 public void Put(int id, MovieDvd movieDvd) { using (var ctx = new StoreEntities()) { var movieDvdRaw = ctx.MovieDvds.Single(q => q.MovieDvdId == id); movieDvdRaw.Title = movieDvd.Title; movieDvdRaw.Price = movieDvd.Price; movieDvdRaw.MovieGenreId = movieDvd.Genre.Key; ctx.SaveChanges(); } }
// PUT api/musicalbum/5 public void Put(int id, MusicAlbum musicAlbum) { using (var ctx = new StoreEntities()) { var albumRaw = ctx.Albums.Single(q => q.AlbumId == id); albumRaw.Title = musicAlbum.Title; albumRaw.Price = musicAlbum.Price; albumRaw.ArtistId = musicAlbum.Artist.Key; albumRaw.GenreId = musicAlbum.Genre.Key; ctx.SaveChanges(); } }
// POST api/musicalbum public void Post(MusicAlbum musicAlbum) { using (var ctx = new StoreEntities()) { ctx.Albums.Add(new Album { Title = musicAlbum.Title, Price = musicAlbum.Price, ArtistId = musicAlbum.Artist.Key, GenreId = musicAlbum.Genre.Key }); ctx.SaveChanges(); } }
// GET api/moviedvd public IEnumerable<MovieDvd> Get(int? genreId) { using (var ctx = new StoreEntities()) { var movieDvdsRaw = (from movieDvd in ctx.MovieDvds join genre in ctx.MovieGenres on movieDvd.MovieGenreId equals genre.MovieGenreId where movieDvd.MovieGenreId == (genreId != null && genreId > 0 ? genreId : movieDvd.MovieGenreId) orderby movieDvd.Title select new { movieDvd, genre }).ToList(); var movieDvds = movieDvdsRaw.Select(q => new MovieDvd { Id = q.movieDvd.MovieDvdId, Title = q.movieDvd.Title, Price = q.movieDvd.Price, Genre = new KeyValuePair<int, string>(q.genre.MovieGenreId, q.genre.Name) }); return movieDvds; } }
// GET api/musicalbum public IEnumerable<MusicAlbum> Get(int? genreId) { //TODO: Repository Pattern implementation is pending using (var ctx = new StoreEntities()) { var albumsRaw = (from album in ctx.Albums join artist in ctx.Artists on album.ArtistId equals artist.ArtistId join genre in ctx.Genres on album.GenreId equals genre.GenreId where album.GenreId == (genreId != null && genreId > 0 ? genreId : album.GenreId) orderby album.Title select new { album, artist, genre }).ToList(); var albums = albumsRaw.Select(q => new MusicAlbum { Id = q.album.AlbumId, Title = q.album.Title, Price = q.album.Price, Artist = new KeyValuePair<int, string>(q.artist.ArtistId, q.artist.Name), Genre = new KeyValuePair<int, string>(q.genre.GenreId, q.genre.Name) }); return albums; } }
// GET api/moviedvd/5 public MovieDvd Get(int id) { MovieDvd movieDvd = null; using (var ctx = new StoreEntities()) { var dvdRaw = (from dvd in ctx.MovieDvds where dvd.MovieDvdId == id join genre in ctx.MovieGenres on dvd.MovieGenreId equals genre.MovieGenreId select new { dvd, genre }).SingleOrDefault(); if (dvdRaw != null) { movieDvd = new MovieDvd { Id = dvdRaw.dvd.MovieDvdId, Title = dvdRaw.dvd.Title, Price = dvdRaw.dvd.Price, Genre = new KeyValuePair<int, string>(dvdRaw.genre.MovieGenreId, dvdRaw.genre.Name) }; } } return movieDvd; }
// GET api/musicalbum/5 public MusicAlbum Get(int id) { MusicAlbum musicAlbum = null; using (var ctx = new StoreEntities()) { var albumRaw = (from album in ctx.Albums where album.AlbumId == id join artist in ctx.Artists on album.ArtistId equals artist.ArtistId join genre in ctx.Genres on album.GenreId equals genre.GenreId select new { album, artist, genre }).SingleOrDefault(); if (albumRaw != null) { musicAlbum = new MusicAlbum { Id = albumRaw.album.AlbumId, Title = albumRaw.album.Title, Price = albumRaw.album.Price, Artist = new KeyValuePair<int, string>(albumRaw.artist.ArtistId, albumRaw.artist.Name), Genre = new KeyValuePair<int, string>(albumRaw.genre.GenreId, albumRaw.genre.Name) }; } } return musicAlbum; }