private static void HandleResponse(DataContext context, Track track, JsonAcoustIdRequest air) { air.Results?.ForEach(x => { AcoustId dbAid = HandleAcoustId(context, x); HandleResult(context, track, dbAid, x); HandleRecordings(context, x, 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(); }
public void should_not_fail_if_duration_reported_as_zero() { UseRealHttp(); var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "Files", "Media", "missing.mp3"); var localTrack = new LocalTrack { Path = path }; var acoustId = new AcoustId { Duration = 0, Fingerprint = "fingerprint" }; Subject.Lookup(new List <Tuple <LocalTrack, AcoustId> > { Tuple.Create(localTrack, acoustId) }, 0.5); }
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); }
public void should_not_throw_if_fingerprint_invalid() { UseRealHttp(); var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "Files", "Media", "missing.mp3"); var localTrack = new LocalTrack { Path = path }; var acoustId = new AcoustId { Duration = 1, Fingerprint = "fingerprint" }; var files = new List <Tuple <LocalTrack, AcoustId> > { Tuple.Create(localTrack, acoustId) }; Subject.Lookup(files, 0.5); files[0].Item1.AcoustIdResults.Should().BeNull(); }
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(); }); }