public async Task <ActionResult <ComposerGenres> > PostComposerGenres(ComposerGenres composerGenres) { _context.ComposerGenres.Add(composerGenres); await _context.SaveChangesAsync(); return(CreatedAtAction("GetComposerGenres", new { id = composerGenres.Id }, composerGenres)); }
public async Task <ActionResult <Piece> > DeletePiece(int id) { var piece = await _context.Pieces.FindAsync(id); if (piece == null) { return(NotFound()); } // custom remove genre var genre = piece.Genre; var composer = piece.Composer; var cgs = composer.ComposerGenres.ToList(); int count = 0; foreach (var cg in cgs) { if (cg.Genre == genre) { count++; } } if (count == 1) { ComposerGenres g = _context.ComposerGenres.First(q => q.Genre == genre); _context.ComposerGenres.Remove(g); } _context.Pieces.Remove(piece); await _context.SaveChangesAsync(); return(piece); }
public async Task <IActionResult> PutComposerGenres(int id, ComposerGenres composerGenres) { if (id != composerGenres.Id) { return(BadRequest()); } _context.Entry(composerGenres).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ComposerGenresExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Piece> > PostPiece(Piece piece) { _context.Pieces.Add(piece); /* * custom add genre to composer's genres */ ComposerGenres composerGenres = new ComposerGenres(); composerGenres.Genre = piece.Genre; composerGenres.Composer = piece.Composer; if (!_context.ComposerGenres.Any(g => g.Genre == composerGenres.Genre && g.Composer == composerGenres.Composer)) { _context.ComposerGenres.Add(composerGenres); } await _context.SaveChangesAsync(); return(CreatedAtAction("GetPiece", new { id = piece.Id }, piece)); }