Beispiel #1
0
        public DefaultFileList[] Find()
        {
            var lists = new List <DefaultFileList>();

            var finder = new ReferenceFileFinder(cancellationToken);

            finder.Find();

            var xmlFiles = new List <Tuple <DefaultFileList, bool> >();

            foreach (var dir in FilesDirs)
            {
                cancellationToken.ThrowIfCancellationRequested();
                if (!Directory.Exists(dir))
                {
                    continue;
                }

                var files = GetFiles(dir);
                foreach (var f in files)
                {
                    cancellationToken.ThrowIfCancellationRequested();
                    var d = ReadDefaultFileList(f);
                    if (d != null)
                    {
                        xmlFiles.Add(d);
                    }
                }
            }

            var dict = new Dictionary <string, DefaultFileList>(StringComparer.OrdinalIgnoreCase);

            foreach (var t in xmlFiles)
            {
                if (t.Item2)                    // if non-user file
                {
                    dict[t.Item1.Name] = t.Item1;
                }
            }

            foreach (var f in finder.AllFiles)
            {
                dict[f.Name] = f;
            }

            foreach (var t in xmlFiles)
            {
                if (!t.Item2)                   // if user file
                {
                    dict[t.Item1.Name] = t.Item1;
                }
            }

            lists.AddRange(dict.Values);
            lists.Sort((a, b) => StringComparer.OrdinalIgnoreCase.Compare(a.Name, b.Name));
            return(lists.ToArray());
        }
Beispiel #2
0
        public DefaultFileList[] Find()
        {
            var lists = new List<DefaultFileList>();

            var finder = new ReferenceFileFinder(cancellationToken);
            finder.Find();

            var xmlFiles = new List<Tuple<DefaultFileList, bool>>();
            foreach (var dir in FilesDirs) {
                cancellationToken.ThrowIfCancellationRequested();
                if (!Directory.Exists(dir))
                    continue;

                var files = GetFiles(dir);
                foreach (var f in files) {
                    cancellationToken.ThrowIfCancellationRequested();
                    var d = ReadDefaultFileList(f);
                    if (d != null)
                        xmlFiles.Add(d);
                }
            }

            var dict = new Dictionary<string, DefaultFileList>(StringComparer.OrdinalIgnoreCase);

            foreach (var t in xmlFiles) {
                if (t.Item2)	// if non-user file
                    dict[t.Item1.Name] = t.Item1;
            }

            foreach (var f in finder.AllFiles)
                dict[f.Name] = f;

            foreach (var t in xmlFiles) {
                if (!t.Item2)	// if user file
                    dict[t.Item1.Name] = t.Item1;
            }

            lists.AddRange(dict.Values);
            lists.Sort((a, b) => StringComparer.OrdinalIgnoreCase.Compare(a.Name, b.Name));
            return lists.ToArray();
        }