Exemplo n.º 1
0
 public CatalogEntry(FileInfo file, CatalogAlbum CatAlb)
 {
     catAlb     = CatAlb;
     EntAbsFile = file;
     Name       = file.Name;
     SearchCoverArt();
     GetMetaData();
     DateAdded = DateTime.Today;
 }
Exemplo n.º 2
0
        ///<summary> Попытка создать альбом или обновить его состав. </summary>
        private void CreateAlbum(DirectoryInfo path, bool withSubDir)
        {
            // проверка наличия альбома по этому пути
            lock (locker) {
                if (AlbumsList.Any(alb => alb.AlbAbsDir.FullName == path.FullName))
                {
                    // обновляем старый
                    CatalogAlbum oldAlbume = AlbumsList.First(alb => alb.AlbAbsDir.FullName == path.FullName);
                    oldAlbume.LoadDir();
                    Interlocked.Increment(ref procDone);
                    if (App.MainWin?.MainPanel != null)
                    {
                        Application.Current.Dispatcher.BeginInvoke((Action)(() => App.MainWin.MainPanel.pBar.Value = (procDone / (float)dirsCount) * 100));
                        Application.Current.Dispatcher.BeginInvoke((Action)(() => App.MainWin.MainPanel.SetInfoText($"({procDone} / {dirsCount})  {path}")));
                    }
                    return;
                }
            }

            // создаем новый
            //Console.WriteLine($"New album <{path}>");
            CatalogAlbum newAlbume = new CatalogAlbum(path, withSubDir);

            newAlbume.LoadDir();
            if (newAlbume.EntryList.Count > 0)
            {
                lock (locker) {
                    AlbumsList.Add(newAlbume);
                }
            }

            Interlocked.Increment(ref procDone);
            if (App.MainWin?.MainPanel != null)
            {
                Application.Current.Dispatcher.BeginInvoke((Action)(() => App.MainWin.MainPanel.pBar.Value = (procDone / (float)dirsCount) * 100));
                Application.Current.Dispatcher.BeginInvoke((Action)(() => App.MainWin.MainPanel.SetInfoText($"({procDone} / {dirsCount})  {path}")));
            }
        }