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;
 }