private ClassModel DeserializeSingleClass(string dataDir, Class_Json charClass) { ClassModel newClass = new ClassModel() { Name = charClass.name != null ? charClass.name : "Unknown", ShortName = charClass.shortName != null ? charClass.shortName : "", ID = charClass.id != null ? charClass.id : "", Source = _Compendium.GetSourceByID(charClass.source != null ? charClass.source : null), Markdown = ResourceHelper.ReadTextFromFile(charClass.file != null ? Path.Combine(dataDir, charClass.file) : ""), ShowInClassList = charClass.showInClassList, ShowInFilterList = charClass.showInFilterList, }; // Set all filters if (charClass.filters != null) { foreach (var filter in charClass.filters) { newClass.AddFilterProperty( filter.groupID != null ? filter.groupID : "", filter.valueID != null ? filter.valueID : ""); } } if (charClass.subclasses != null) { foreach (var subclass in charClass.subclasses) { newClass.AddSubclass(DeserializeSingleClass(dataDir, subclass)); } } return(newClass); }
private void DeserializeContentItem(dynamic content, string dataDir, ContentItemModel parent = null) { // Basic properties var newContent = new ContentItemModel() { Name = content.name != null ? (string)content.name : "", ID = content.id != null ? (string)content.id : "", Source = content.source != null?_Compendium.GetSourceByID((string)content.source) : null, Markdown = content.file != null ? ResourceHelper.ReadTextFromFile(Path.Combine(dataDir, (string)content.file)) : "", Parent = parent }; // Set all filters if (content.filters != null) { foreach (var filter in content.filters) { newContent.AddFilterProperty( filter.groupID != null ? (string)filter.groupID : "", filter.valueID != null ? (string)filter.valueID : ""); } } _Content.Add(newContent); // Handle sub-content if (content.subcontent != null) { foreach (var subcontent in content.subcontent) { DeserializeContentItem(subcontent, dataDir, newContent); } } }