Exemple #1
0
        /// <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));
            }
        }