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)); }
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); }