예제 #1
0
        protected IEnumerable <AudioMetaData> GetAudioMetaDatasForDirectory(DirectoryInfo directory)
        {
            try
            {
                if (!CachedAudioDatas.ContainsKey(directory.FullName))
                {
                    var filesInMetaDataFolder     = directory.GetFiles("*.mp3", SearchOption.TopDirectoryOnly);
                    var metaDatasForFilesInFolder = new List <AudioMetaData>();
                    foreach (var fileInMetaDataFolder in filesInMetaDataFolder)
                    {
                        var metaData = TagsHelper.MetaDataForFile(fileInMetaDataFolder.FullName, true);
                        metaDatasForFilesInFolder.Add(metaData.Data);
                    }

                    CachedAudioDatas.Add(directory.FullName, metaDatasForFilesInFolder);
                }

                return(CachedAudioDatas[directory.FullName]);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);
            }

            return(new AudioMetaData[0]);
        }