private IEnumerable<Match<AlbumDescriptor>> SearchFromCDQuery(ICDInfoHandler CDUnit, bool NeedCover, CancellationToken iCancellationToken)
        {
            if (CDUnit == null)
                yield break;

            if (!CDUnit.IsReady)
                yield break;

            string discid = CDUnit.IDs.MusicBrainzCDId;

            HttpJsonInterpretor hji =
                new HttpJsonInterpretor(MusicBrainzHttpCreator.ForCDIdSearch().SetValue(discid).BuildRequest(_User,_Password));

            dynamic myres = hji.GetObjectResponse(this);
            if (myres == null)
                yield break;

            foreach (AlbumDescriptor ad in MusicBrainzJsonInterpretor.FromMusicBrainzReleaseResults(myres, discid, iCancellationToken, NeedCover))
            {
                yield return new Match<AlbumDescriptor>(ad, MatchPrecision.Suspition);
            }
        }
        internal void MergeIDsFromCDInfos(ICDInfoHandler dif)
        {
            IDiscIDs dicsids = dif.IDs;

            if (dicsids != null)
            {
                if (CDDB == null) CDDB = dicsids.CDDB;
                if (Asin == null) Asin = dicsids.Asin;
                if (MusicBrainzID == null) MusicBrainzID = dicsids.MusicBrainzID;
                if (MusicBrainzCDId == null) MusicBrainzCDId = dicsids.MusicBrainzCDId;
            }
        }
        static internal AlbumDescriptor CreateBasicFromCD(ICDInfoHandler dfih, IImportContext Context, string Artist, string Name, bool Basic = false)
        {
            var res = new AlbumDescriptor();
            res.RawIDs = dfih.IDs;
            res.TracksNumber = (uint)dfih.TrackNumbers;

            res.Artist = Artist;
            res.Name = Name;

            res.RawTrackDescriptors = Enumerable.Range(0, dfih.TrackNumbers).Select(i => new TrackDescriptor(res, string.Format("Track {0}", i + 1), i + 1, dfih.Duration(i), res.Artist)).ToList();
            //if (!Basic)
            //    res.MergeTracksIDsFromCDInfos(dfih);

            return res;
        }
 static internal AlbumDescriptor CreateBasicFromCD(ICDInfoHandler dfih, IImportContext Context)
 {
     return CreateBasicFromCD(dfih, Context, _Unknown, Context.FindNewUnknownNameAlbumForArtist(_Unknown), true);
 }
 internal CDInfoQuery(ICDInfoHandler iad)
 {
     CDInfo = iad;
 }
 public IWebQuery FromCDInfo(ICDInfoHandler iad)
 {
     return new CDInfoQuery(iad);
 }