// PUT: api/SongBook/5 public void UpdateSongBook(int id, SongBookInfo value) { using (var context = Context) { var existing = context.SongBooks.SingleOrDefault(d => d.Key == id); if (existing != null) { context.SongsInSongBooks.RemoveRange( context.SongsInSongBooks.Where(d => d.SongBookKey == existing.Key)); } existing?.Update(value); context.SaveChanges(); } }
// POST: api/SongBook public void AddSongBook(SongBookInfo value) { using (var context = Context) { var songBook = new SongBook { Name = value.Name }; songBook.Songs = value.Songs.Select(d => new SongInSongBook { SongBook = songBook, SongKey = d }).ToList(); context.SongBooks.Add(songBook); context.SaveChanges(); } }
// PUT: api/SongBook/5 public void Put(int id, [FromBody] SongBookInfo value) { _accessor.UpdateSongBook(id, value); }
// POST: api/SongBook public void Post([FromBody] SongBookInfo value) { _accessor.AddSongBook(value); }