public async Task <IActionResult> Delete([FromBody] ArtistDo artist) { if (artist == null) { return(BadRequest(ArtistShouldNotBeNull)); } return(await TryExecutingServiceAsync(() => _artistService.Delete(artist), Ok())); }
public async Task <IActionResult> Create([FromBody] ArtistDo artist) { if (artist == null) { return(BadRequest(ArtistShouldNotBeNull)); } return(await TryExecutingServiceAsync(() => _artistService.Create(artist), CreatedAtRoute("GetArtistById", new { id = artist.ArtistId, artist }))); }
public async Task Create_ShouldCallUnitOfWorkCreateAndSaveChanges() { CreateSubject(); var artist = new ArtistDo(); await _subject.Create(artist); _unitOfWork.Artists.Received().Create(artist); await _unitOfWork.Received().SaveChangesAsync(); }
public async Task Update_ShouldCallUnitOfWorkUpdateAndSaveChanges() { CreateSubject(); var artist = new ArtistDo { ArtistId = _artistId }; await _subject.Update(_artistId, artist); await _unitOfWork.Artists.Received().Update(artist); await _unitOfWork.Received().SaveChangesAsync(); }
private ArtistDo GetOrAddArtist(ArtistDo artist) { if (artists.ContainsKey(artist.Name)) { artist = artists[artist.Name]; } else { artists.Add(artist.Name, artist); } return(artist); }
public async Task <IActionResult> Update(int id, [FromBody] ArtistDo artist) { if (artist == null) { return(BadRequest(ArtistShouldNotBeNull)); } if (id == 0) { return(BadRequest("You must provide an id in order to retrieve the artist")); } return(await TryExecutingServiceAsync(() => _artistService.Update(id, artist), Ok())); }
public async Task Create_ShouldAddAnArtistInDbContext() { var artist = new ArtistDo { ArtistId = 3, FirstName = "Otis", LastName = "Redding" }; _subject.Create(artist); _dbContext.SaveChanges(); var result = (await _subject.GetAll()).ToList(); result.Should().HaveCount(3); result.Last().FirstName.Should().Be(artist.FirstName); }
private void HandleAlbumsWithoutArtist(ArtistDo unkownArtist, ArtistDo variousArtists) { var albumArtistsByAlbum = albumArtists.ToLookup(aa => aa.Item1); var albumTracksByAlbum = albumTracks.ToLookup(at => at.Item2); var trackArtistsByTrack = trackArtists.ToLookup(ta => ta.Item1); var albumsWithoutArtist = albumCollection.Values.Where(a => !albumArtistsByAlbum.Contains(a)).ToList(); foreach (var album in albumsWithoutArtist) { var tracksOfAlbum = albumTracksByAlbum.Contains(album) ? albumTracksByAlbum[album].Select(at => at.Item1) : Enumerable.Empty <TrackDo>(); var artistsOfAlbum = tracksOfAlbum .SelectMany(t => trackArtistsByTrack.Contains(t) ? trackArtistsByTrack[t].Select(ta => ta.Item2) : Enumerable.Empty <ArtistDo>()) .Distinct() .ToList(); if (artistsOfAlbum.Count == 0) { var albumArtist = new Tuple <AlbumDo, ArtistDo>(album, unkownArtist); albumArtists.Add(albumArtist); } else if (artistsOfAlbum.Count <= 2) { foreach (var artist in artistsOfAlbum) { var albumArtist = new Tuple <AlbumDo, ArtistDo>(album, artist); albumArtists.Add(albumArtist); } } else { var albumArtist = new Tuple <AlbumDo, ArtistDo>(album, variousArtists); albumArtists.Add(albumArtist); } } }
public async Task Delete(ArtistDo artist) { _unitOfWork.Artists.Delete(artist); await _unitOfWork.SaveChangesAsync(); }
public async Task Update(int id, ArtistDo artist) { await _unitOfWork.Artists.Update(artist); await _unitOfWork.SaveChangesAsync(); }