Beispiel #1
0
        /// <summary>
        /// (РЕКУРСИЯ!!!)Нахождение всех папок форматов и подсчёт количества фотографий в одинаковых
        /// </summary>
        /// <param name="directoryModel">директория, в которой будет производиться поиск</param>
        /// <returns></returns>
        public Dictionary <string, int> FormatNumSum(DirectoryModel directoryModel)
        {
            Dictionary <string, int> formatesDic = new Dictionary <string, int>();

            if (directoryModel == null)
            {
                return(formatesDic);
            }

            Regex rx = new Regex(@"\d{1,5}[x|х]\d{1,5}[x|х]\d{1,5}",
                                 RegexOptions.Compiled | RegexOptions.IgnoreCase);

            if (rx.IsMatch(directoryModel.ShortName))
            {
                DictionaryHelper.AddToDictionary(formatesDic,
                                                 new KeyValuePair <string, int>(directoryModel.ShortName,
                                                                                directoryModel.AggregateNumOfEachFileType.Values.Sum()), (int a, int b) => a + b);
            }

            foreach (var item in directoryModel.DirectoryModelsList)
            {
                formatesDic = DictionaryМerge <string, int>(formatesDic, FormatNumSum(item), (IEnumerable <KeyValuePair <string, int> > pairs) => pairs.Select(x => x.Value).Sum());
            }

            return(formatesDic);
        }