public void DeleteAlbumTracksAndExtraartists(List <TrackModel> tracks) { foreach (var track in tracks) { var extraartists = _context.ExtraArtists .Include(e => e.Track) .Where(e => e.Track.ID == track.ID).ToList(); ExtraArtistModel beforeExtraArtist = new ExtraArtistModel(); foreach (var extraartist in extraartists) { if (extraartist != beforeExtraArtist) { _context.ExtraArtists.Remove(extraartist); } beforeExtraArtist = extraartist; } } TrackModel beforeTrack = new TrackModel(); foreach (var track in tracks) { if (track != beforeTrack) { _context.Tracks.Remove(track); } beforeTrack = track; } }
public void ChangeDB(EFContext context, JObject jsonFile, List <int> ids) { if (ids.Count != 2) { if (Successor != null) { Successor.ChangeDB(context, jsonFile, ids); } } else { List <int> tracksId = context .Tracks .Include(t => t.Album) .Where(t => t.Album.ID == ids[1]) .Select(t => t.ID) .ToList(); try { for (int i = 0; i < tracksId.Count; i++) { if (jsonFile["tracklist"][i]["extraartists"] is null) { continue; } foreach (var xa in jsonFile["tracklist"][i]["extraartists"]) { var xartist = new ExtraArtistModel() { Track = new TrackModel(), Name = xa["name"].ToString() }; xartist.Track.ID = tracksId[i]; context.ExtraArtists.Add(xartist); context.SaveChanges(); } } if (Successor != null) { Successor.ChangeDB(context, jsonFile, ids); } } catch (Exception) { if (Successor != null) { Successor.ChangeDB(context, jsonFile, ids); } } } }