/// <summary> /// Read data files in a batch and send callback /// </summary> /// <typeparam name="T"></typeparam> /// <param name="name"></param> /// <param name="callback"></param> public void ForEachObject <T>(string name, Action <T> callback) { var folder = DynamicConfigFile.SanitizeName(name); var files = _datafiles.Where(d => d.Key.StartsWith(folder)).Select(a => a.Value); foreach (var file in files) { callback?.Invoke(file.ReadObject <T>()); } }
public DynamicConfigFile GetFile(string name) { name = DynamicConfigFile.SanitizeName(name); if (_datafiles.TryGetValue(name, out DynamicConfigFile datafile)) { return(datafile); } datafile = new DynamicConfigFile(Path.Combine(Directory, $"{name}.json")); _datafiles.Add(name, datafile); return(datafile); }
public DynamicConfigFile GetFile(string name) { DynamicConfigFile dynamicConfigFiles; name = DynamicConfigFile.SanitizeName(name); if (this._datafiles.TryGetValue(name, out dynamicConfigFiles)) { return(dynamicConfigFiles); } dynamicConfigFiles = new DynamicConfigFile(Path.Combine(this.Directory, string.Concat(name, ".json"))); this._datafiles.Add(name, dynamicConfigFiles); return(dynamicConfigFiles); }
public void ForEachObject <T>(string name, Action <T> callback) { string str = DynamicConfigFile.SanitizeName(name); foreach (DynamicConfigFile dynamicConfigFiles in from in this._datafiles where d.Key.StartsWith(str) select a.Value) { if (callback == null) { continue; } callback(dynamicConfigFiles.ReadObject <T>(null)); } }