public void SetUp()
        {
           
            _wpfTester = new WPFTester();

            _window = new Window();

            _wpfTester.ShowWindow(_window);

            Init();
            _ISession = MusicSessionImpl.GetSession(_SK.Builder, new WPFHwndProvider(_window));
            _Session = _ISession as MusicSessionImpl;

           IMusicImporter imi = _ISession.GetDBImporter();
           imi.Load();

           IDirectoryImporterBuilder imib = _ISession.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder;
           Assert.That(imib, Is.Not.Null);
           imib.Directory = DirectoryIn;
           imib.DefaultAlbumMaturity = AlbumMaturity.Discover;

           Assert.That(imib.IsValid, Is.True);
           imi = imib.BuildImporter();
           Assert.That(imi, Is.Not.Null);
           imi.Load();
        }
 internal ArtistCollection(MusicSessionImpl Session)
 {
     _Session = Session;
     _OArtists = new ModelToUISafeCollectionHandler<Artist, IArtist>(_Artists);
     _AllArtistsByName = new ItemFinder<IArtist>(_OArtists.ModifiableUICollection, a => a.Name);
     //.NormalizeSpace().ToLower().WithoutAccent());
 }
        private IList<Track> MoveIn(MusicSessionImpl msi, int packect, bool CheckUpdateState=true)
        {
            IList<Track> res = MoveFilePacketCheckState(msi, packect, this.DirectoryIn, TempDirectoryOut, true);

            Assert.That(res, Is.Not.Null);
            Assert.That(res.Cast<IInternalTrack>().All(tr => tr.InternalState == ObjectState.Available), Is.True);

            if (CheckUpdateState)
            {
                Assert.That(res.Cast<IInternalTrack>().All(tr => tr.UpdatedState == ObjectState.FileNotAvailable), Is.True);
                Assert.That(res.Cast<IInternalTrack>().All(tr => tr.InternalState == ObjectState.FileNotAvailable), Is.True);
            }

            return res;
        }
        public void SetUp()
        {
            Init();
            _ISession = MusicSessionImpl.GetSession(_SK.Builder);
            _Session = _ISession as MusicSessionImpl;

            IMusicImporter imi = _ISession.GetDBImporter();
            imi.Load();

            IDirectoryImporterBuilder imib = _ISession.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder;
            Assert.That(imib, Is.Not.Null);
            imib.Directory = DirectoryIn;
            imib.DefaultAlbumMaturity = AlbumMaturity.Discover;

            Assert.That(imib.IsValid, Is.True);
            imi = imib.BuildImporter();
            Assert.That(imi, Is.Not.Null);
            imi.Load();
        }
        public void SetUp()
        {
            base.Init();

            _AddDirectory = Path.Combine(this.DirectoryIn, "Greg Kelley And Co");
            Directory.CreateDirectory(_AddDirectory);

            string copysong = Path.Combine(_AddDirectory, "02 One To Grow On.mp3");
            string mysong = Path.Combine(this.DirectoryIn, "02 One To Grow On.mp3");

            FileInfo fi = new FileInfo(mysong);
            fi.MoveTo(copysong);

            _MainDirectory = Path.Combine(this.DirectoryIn, "Main");
            Directory.CreateDirectory(_MainDirectory);

            DirectoryInfo di = new DirectoryInfo(this.DirectoryIn);
            foreach (FileInfo fif in di.GetFiles())
            {
                if (Path.GetExtension(fif.Name) != ".xml")
                {
                    string Des = Path.Combine(_MainDirectory, fif.Name);
                    fif.MoveTo(Des);
                }
            }

            _MS = MusicSessionImpl.GetSession(_SK.Builder);
            _msi = _MS as MusicSessionImpl;

            IMusicImporter imi = _MS.GetDBImporter();
            Assert.That(imi, Is.Not.Null);
            imi.Load();

            Assert.That(_msi.AllAlbums.Count, Is.EqualTo(0)); 
            Assert.That(_msi.AllArtists.Count, Is.EqualTo(0));
            Assert.That(_msi.AllGenres.Count, Is.EqualTo(25));
           

        }
        //private LifeCycleCollection<string, AbstractPlayList> _PlayLists = new LifeCycleCollection<string, AbstractPlayList>((apl)=>(apl as IReadOnlyPlayList).PlayListname);
        //private UISafeReadOnlyObservableCollection<IReadOnlyPlayList> _VisiblePlayList;

        //private MusicSessionImpl _MSI;

        internal PlayListFactory(MusicSessionImpl MSI)
        {
            //_MSI = MSI;
        }
 internal GenreCollection(MusicSessionImpl msi)
 {
     _Session = msi;
 }
 private void MoveOut(MusicSessionImpl msi, int packect)
 {
     MoveFilePacketCheckState(msi, packect,TempDirectoryOut, this.DirectoryIn, false);
 }
 internal EntityFinder(MusicSessionImpl ism)
 {
     _IMS = ism;
     AlbumFinder = new ItemFinder<IAlbum>(_IMS.AllAlbums, a => a.Name);
     TrackFinder = new ItemFinder<ITrack>(_IMS.AllTracks, (t) => t.Name);
 }
 internal SessionLocker(SemaphoreSlim sem, MusicSessionImpl iMSI)
 {
     _sem = sem;
     _sem.Wait();
     _MSI = iMSI;
 }
 internal MusicExporterFactory(MusicSessionImpl MSI)
 {
     _MSI = MSI;
 }