public CatalogEntry(FileInfo file, CatalogAlbum CatAlb) { catAlb = CatAlb; EntAbsFile = file; Name = file.Name; SearchCoverArt(); GetMetaData(); DateAdded = DateTime.Today; }
///<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}"))); } }