コード例 #1
0
        public static IConfiguartion Read(SetRecord set)
        {
            if (set == null)
            {
                throw new ArgumentNullException(nameof(set));
            }

            RecordBase record;
            SetRecord  setIncludeItems    = null;
            SetRecord  setGlobalExcludes  = null;
            ListRecord setScanDirectories = null;

            if (set.TryGetValue("scan", out record))
            {
                setScanDirectories = record as ListRecord;
            }
            if (set.TryGetValue("include", out record))
            {
                setIncludeItems = record as SetRecord;
            }
            if (set.TryGetValue("exclude", out record))
            {
                setGlobalExcludes = record as SetRecord;
            }

            ItemIncludeOptions resultInclude = ReadItemIncludeOptions(setIncludeItems);
            ScanFilterOptions  resultExclude = null;

            if (setGlobalExcludes == null)
            {
                resultExclude = ScanFilterOptions.CreateExcludeDefault();
            }
            else
            {
                resultExclude = ReadFilterOptions(setGlobalExcludes);
            }

            List <DirectoryScanOptions> resultScanDirectories = new List <DirectoryScanOptions>();

            if (setScanDirectories != null)
            {
                foreach (RecordBase scanOptions in setScanDirectories)
                {
                    if (scanOptions is SetRecord setScanOptions)
                    {
                        resultScanDirectories.Add(ReadDirectoryScanOptions(resultExclude, setScanOptions));
                    }
                }
            }

            return(new Configuration(resultExclude, resultInclude, resultScanDirectories));
        }
コード例 #2
0
ファイル: Configuration.cs プロジェクト: lzl1918/FileDesktop
        internal Configuration(ScanFilterOptions globalExclude, ItemIncludeOptions includeItems, List <DirectoryScanOptions> scanDirectories)
        {
            if (globalExclude == null)
            {
                throw new ArgumentNullException(nameof(globalExclude));
            }
            if (includeItems == null)
            {
                throw new ArgumentNullException(nameof(includeItems));
            }
            if (scanDirectories == null)
            {
                throw new ArgumentNullException(nameof(scanDirectories));
            }

            GlobalExcludes  = globalExclude;
            IncludeItems    = includeItems;
            ScanDirectories = scanDirectories;
        }