public void LoadDialogs(FileInfo fileInfo) { using (var file = File.OpenText(fileInfo.FullName)) using (var reader = new JsonTextReader(file)) { var jsonDialogs = JToken.ReadFrom(reader); var create = jsonDialogs["create"] as JArray; var edit = jsonDialogs["create"] as JArray; void CreateSetter(MetaExtension metaExtension, JToken json) { metaExtension.Create = json["component"]?.Value <string>(); } MetaExtension.Load(this.MetaExtensions, create, CreateSetter); void EditSetter(MetaExtension metaExtension, JToken json) { metaExtension.Edit = json["component"]?.Value <string>(); } MetaExtension.Load(this.MetaExtensions, edit, EditSetter); } }
public void LoadMetaExtensions(FileInfo fileInfo) { using (var file = File.OpenText(fileInfo.FullName)) using (var reader = new JsonTextReader(file)) { var jsonMetaExtensions = (JArray)JToken.ReadFrom(reader); void Setter(MetaExtension metaExtension, JToken json) { metaExtension.List = json["list"]?.Value <string>(); metaExtension.Overview = json["overview"]?.Value <string>(); } MetaExtension.Load(this.MetaExtensions, jsonMetaExtensions, Setter); } }
public static void Load(Dictionary <Guid, MetaExtension> metaExtensions, JArray jsonMetaExtensions, Action <MetaExtension, JToken> setter) { foreach (var json in jsonMetaExtensions) { if (json["id"] != null) { Guid.TryParse(json["id"].Value <string>(), out var id); if (!metaExtensions.TryGetValue(id, out var metaExtension)) { metaExtension = new MetaExtension { Id = id, }; metaExtensions.Add(id, metaExtension); } setter(metaExtension, json); } } }