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;
     }
 }
Beispiel #2
0
 public FlagFileDataMerger(FileDataTypes.DuplicateKeysHandling duplicateKeysHandling)
 {
     _duplicateKeysHandling = duplicateKeysHandling;
 }
Beispiel #3
0
 /// <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);
 }