コード例 #1
0
        private static Settings MergeToSettings(RawMapping rawMapping, IniConfig iniConfig)
        {
            var mappingDefaultFilePath = iniConfig.WorkingDirectory;

            var mappingItems = rawMapping.Mapping
                               .SelectMany(rawMappingItem =>
            {
                return(rawMappingItem.Src.Select(srcLocation => new Settings.MappingItem
                {
                    Src = new Settings.MappingItem.SrcLocation
                          (
                        Word.ParseSrc(srcLocation.Word, srcLocation.WordRegexpEnabled),
                        srcLocation.FileName,
                        srcLocation.Order,
                        mappingDefaultFilePath,
                        srcLocation.OverrideFilePath,
                        srcLocation.FileNameRegexpEnabled,
                        srcLocation.IgnoredFileNames
                          ),
                    Dst = new Settings.MappingItem.DstLocation
                          (
                        Word.ParseDst(rawMappingItem.Dst.Word),
                        rawMappingItem.Dst.FileName,
                        mappingDefaultFilePath,
                        rawMappingItem.Dst.OverrideFilePath
                          )
                }));
            })
                               .ToList();

            return(new Settings(iniConfig, mappingItems));
        }
コード例 #2
0
        public static Settings LoadMapping(IniConfig iniConfig)
        {
            if (!File.Exists(MAPPING_LOCAL_PATH))
            {
                DownloadRemoteMapping(ConvertUtils.ToUri(iniConfig.MappingRemoteUrl));
            }
            else
            {
                Logger.Info($"{MAPPING_LOCAL_PATH} exists! Mapping will be loaded locally");
            }

            RawMapping rawMapping = LoadRawMapping();
            Settings   settings   = MergeToSettings(rawMapping, iniConfig);

            Validate(settings);

            Logger.Info($"Mapping successfully reloaded from: {MAPPING_LOCAL_PATH}");
            return(settings);
        }