/// <summary>
        /// Parses files found in the WoW archives.
        /// </summary>
        /// <param name="searchPattern"></param>
        /// <param name="useParallelization"></param>
        /// <returns></returns>
        public IEnumerable <IFormat> EnumerateArchives(string searchPattern = "*", bool useParallelization = true)
        {
            var archives   = _directoryReader.GetArchives("*", true);
            var fileLookup = _mpqReader.GetFileLookup(archives, searchPattern).AsParallel();

            if (!useParallelization)
            {
                fileLookup = fileLookup.WithDegreeOfParallelism(1);
            }

            return(fileLookup.Select(lookup => _mpqReader.ReadFile(lookup.Key, lookup.Value)));
        }