private static void HandleRecordings(DataContext context, JsonAcoustIdRequest.JsonResult json, AcoustId ai) { json.Recordings?.ForEach(recording => { MusicBrainzRecord mbr = context.SetMusicBrainzRecords.Include(x => x.MusicBrainzRecordAcoustIds) .ThenInclude(x => x.AcoustId) .FirstOrDefault(x => x.MusicbrainzId.Equals(recording.Id)); if (null == mbr) { // not found in database mbr = new MusicBrainzRecord { MusicbrainzId = recording.Id , MusicBrainzRecordAcoustIds = new List <MusicBrainzRecordAcoustId>() }; context.SetMusicBrainzRecords.Add(mbr); context.SaveChanges(); mbr.MusicBrainzRecordAcoustIds.Add(new MusicBrainzRecordAcoustId { AcoustIdUniqueId = ai.UniqueId , AcoustId = ai , MusicBrainzRecord = mbr , MusicBrainzRecordUniqueId = mbr.UniqueId }); context.SaveChanges(); return; // continue in foreach } if (mbr.MusicBrainzRecordAcoustIds.Any(x => x.AcoustId.Id.Equals(ai.Id))) { // reference already exists return; } // no reference yet -> create one mbr.MusicBrainzRecordAcoustIds.Add(new MusicBrainzRecordAcoustId { AcoustIdUniqueId = ai.UniqueId , AcoustId = ai , MusicBrainzRecord = mbr , MusicBrainzRecordUniqueId = mbr.UniqueId }); context.SaveChanges(); }); }
private static AcoustId HandleAcoustId(DataContext context, JsonAcoustIdRequest.JsonResult json) { AcoustId dbAid = context.SetAcoustIds.FirstOrDefault(y => y.Id.Equals(json.Id)); if (null != dbAid) { return(dbAid); } // does not exist in database yet dbAid = new AcoustId { Id = json.Id }; context.SetAcoustIds.Add(dbAid); context.SaveChanges(); return(dbAid); }
private static void HandleResult(DataContext context, Track track, AcoustId dbAid, JsonAcoustIdRequest.JsonResult json) { context.SetAcoustIdResults.Add(new AcoustIdResult { Track = track , AcoustId = dbAid , Score = json.Score }); context.SaveChanges(); }