public FileDataSource(IDataSourceUpdates dataSourceUpdates, FileDataTypes.IFileReader fileReader, List <string> paths, bool autoUpdate, Func <string, object> alternateParser, bool skipMissingPaths, FileDataTypes.DuplicateKeysHandling duplicateKeysHandling, Logger logger) { _logger = logger; _dataSourceUpdates = dataSourceUpdates; _paths = new List <string>(paths); _parser = new FlagFileParser(alternateParser); _dataMerger = new FlagFileDataMerger(duplicateKeysHandling); _fileReader = fileReader; _skipMissingPaths = skipMissingPaths; if (autoUpdate) { try { _reloader = new FileWatchingReloader(_paths, TriggerReload); } catch (Exception e) { LogHelpers.LogException(_logger, "Unable to watch files for auto-updating", e); _reloader = null; } } else { _reloader = null; } }
public FlagFileDataMerger(FileDataTypes.DuplicateKeysHandling duplicateKeysHandling) { _duplicateKeysHandling = duplicateKeysHandling; }
/// <summary> /// Specifies how to handle keys that are duplicated across files. /// </summary> /// <remarks> /// <para> /// By default, the file data source will throw if keys are duplicated across files. /// </para> /// </remarks> /// <param name="duplicateKeysHandling">how duplicate keys should be handled</param> /// <returns>the same factory object</returns> public FileDataSourceBuilder DuplicateKeysHandling(FileDataTypes.DuplicateKeysHandling duplicateKeysHandling) { _duplicateKeysHandling = duplicateKeysHandling; return(this); }