public HttpResponseMessage PostArtist(ArtistDetailsModel model) { if (model == null || model.Name == null ) { var errResponse = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The name of the Artist should be valid"); return errResponse; } var entityAlbum = this.albumRepository.All().Where(x => x.Title == model.AlbumName).FirstOrDefault(); if (entityAlbum == null) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "This album doesn't exist!"); } var entityToAdd = new Artist { Name = model.Name, Country = model.Country, DateOfBirth = model.DateOfBirth, Album = entityAlbum }; var createdEntity = this.artistRepository.Add(entityToAdd); var createdModel = new ArtistModel() { Id = createdEntity.Id, Name = createdEntity.Name, Country = createdEntity.Country, DateOfBirth = createdEntity.DateOfBirth }; var response = Request.CreateResponse<ArtistModel>(HttpStatusCode.Created, createdModel); var resourceLink = Url.Link("DefaultApi", new { Id = createdModel.Id}); response.Headers.Location = new Uri(resourceLink); return response; }
public ArtistDetailsModel GetById(int id) { if (id <= 0) { var errResponse = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The artist is invalid"); throw new HttpResponseException(errResponse); } var entity = this.artistRepository.Get(id); var model = new ArtistDetailsModel() { Name = entity.Name, Country = entity.Country, DateOfBirth = entity.DateOfBirth, AlbumName = entity.Album.Title, Songs = (from song in entity.Album.Songs select new SongModel() { Id = song.Id, Title = song.Title, Genre = song.Genre, Year = song.Year }).ToList() }; return model; }