public RoviClient SearchAlbum(IAlbumDescriptor iIAlbumDescriptor)
 {
     _Atributes.Add("query", 
         string.Format("{0}+{1}",iIAlbumDescriptor.Name,iIAlbumDescriptor.Artist).Trim().Replace(' ','+') );
     _Atributes.Add("entitytype","album");
     _Atributes.Add("include", "images,tracks");
     return this;
 }
        private IEnumerable<Match<AlbumDescriptor>> SearchFromDiscQuery(IAlbumDescriptor AlbumDescriptor, bool NeedCover, CancellationToken iCancellationToken)
        {
            string mzid = AlbumDescriptor.IDs.MusicBrainzID;
            if (!string.IsNullOrEmpty(mzid))
            {
                Match<AlbumDescriptor> res = GetFromMusicBrainzId(mzid, NeedCover, iCancellationToken);
                if (res != null)
                    yield return res;

                yield break;
            }

            HttpJsonInterpretor jsonconv =
                new HttpJsonInterpretor(MusicBrainzHttpCreator.ForReleaseSearch().SetArtist(AlbumDescriptor.Artist).SetDiscName(AlbumDescriptor.Name).BuildRequest(_User, _Password));

            dynamic dynamicres = jsonconv.GetObjectResponse();

            if (iCancellationToken.IsCancellationRequested)
                yield break;

            if  ((dynamicres == null) || (dynamicres.count == 0))
                yield break;

            List<dynamic> Releases = dynamicres.releases;
            if (Releases == null)
                yield break;

            foreach (dynamic rel in Releases)
            {  
                if (iCancellationToken.IsCancellationRequested)
                    break;

                Match<AlbumDescriptor> res = GetFromMusicBrainzId(rel.id, NeedCover, iCancellationToken, MatchPrecision.Suspition);
                if (res != null)
                    yield return res;       
            }
        }
 internal IHttpWebRequest GetSearchRequest(IAlbumDescriptor iad)
 {
     return LookFor(string.Format("{0}+{1}", iad.Artist.Replace(',', ' ').Replace('&', ' '), iad.Name.Replace(',', ' ').Replace('&', ' ')))
             .AddTypeSearch("release").LookForTitle().BuildRequest(_AuthManager);
 }
        public void InjectImages(IAlbumDescriptor iad, bool AllowMultiInject)
        {
            var ad = iad as AlbumDescriptor;
            if (ad == null)
                return;

            if (iad == this)
                return;

            if (RawImages != null && !AllowMultiInject)
            {
                RawImages.Clear();
                RawImages = null;
            }

            if (ad.RawImages != null)
            {
                if (RawImages == null)
                    RawImages = new List<AImage>();
                RawImages.AddRange(ad.RawImages.Select(im => im.Clone()));
            }

        }
 internal CDImportingProgessAdditionalCoverInfoEventArgs(IAlbumDescriptor iad)
     : base(iad.Name)
 {
 }
 internal AlbumDescriptorQuery(IAlbumDescriptor iad)
 {
     AlbumDescriptor = iad;
 }
 public IWebQuery FromAlbumDescriptor(IAlbumDescriptor iad)
 {
     return new AlbumDescriptorQuery(iad);
 }
 internal AlbumDescriptorDecorator(IAlbumDescriptor itd, IImportContext Context)
 {
     _AD = itd;
     _Session = Context;
 }