IMusicImporter IMusicImporterFactory.GetFileService(IInternalMusicSession iconv, string dir, AlbumMaturity iDefaultMaturity) { DirectoryInfo DI = new DirectoryInfo(dir); if (!DI.Exists) throw new InvalidDataException(string.Format("Need a valid path {0}", dir)); return new LazyLoadingMusicImporter(_Session, ((iel) => GetFrom(iconv, DI, iel)), iDefaultMaturity); }
IMusicImporter IMusicImporterFactory.GetXMLImporter(IEnumerable<string> FileNames, bool ImportAllMetaData, AlbumMaturity iDefaultMaturity) { return new LazyLoadingMusicImporter(_Session, ((iel) => FileNames.Select<string, IImporter>(fn => { switch (FileServices.GetFileType(fn)) { case MusicCollection.Infra.FileType.Mcc: return new MccImporter(fn, ImportAllMetaData); case MusicCollection.Infra.FileType.XML: return new XMLImporter(fn, ImportAllMetaData); } return null; }).Where(i => i != null)), iDefaultMaturity); }
public IMusicImporter GetMultiRarImporter(IEnumerable<string> FileName, AlbumMaturity iDefaultMaturity) { return new LazyLoadingMusicImporter(_Session, (iel) => CollectorFactory.CollectorRar(_Session, FileName).Select(col => col.Importer), iDefaultMaturity); }
IMusicImporter IMusicImporterFactory.GetCDImporter(AlbumMaturity iDefaultMaturity, bool iOpenCDDoorOnComplete) { return new LazyLoadingMusicImporter(_Session, (iel) => FileInternalToolBox.GetAvailableCDDriver().Select(d => new CDImporter(_Session.MusicConverter, d, iOpenCDDoorOnComplete)), iDefaultMaturity); }
IMusicImporter IMusicImporterFactory.GetRarImporter(string FileName, AlbumMaturity iDefaultMaturity) { return GetMultiRarImporter(FileName.SingleItemCollection<string>(), iDefaultMaturity); }
IMusicImporter IMusicImporterFactory.GetITunesService(bool ImportBrokenTrack, string Directory, AlbumMaturity iDefaultMaturity) { return new LazyLoadingMusicImporter(_Session, (() => new IiTunesImporter(ImportBrokenTrack, Directory)), iDefaultMaturity); }
private LazyLoadingMusicImporter(IInternalMusicSession Session, Func<IImporter> Con, AlbumMaturity iDefaultMaturity) : this(Session, ((iel) => Con().SingleItemCollection<IImporter>()), iDefaultMaturity) { }
private LazyLoadingMusicImporter(IInternalMusicSession Session, Func<IEventListener, IEnumerable<IImporter>> Con, AlbumMaturity iDefaultMaturity) { _IInternalMusicSession = Session; _Transaction = Session.GetNewSessionContext(iDefaultMaturity); _Importers = null; _Const = Con; }
ImportTransaction IInternalMusicSession.GetNewSessionContext(AlbumMaturity iDefaultMaturity) { return new ImportTransaction(this, iDefaultMaturity); }