public void AppendState(DnDToolsState otherState) { Monsters.AddRange(otherState.Monsters); CreatureTypes.AddRange(otherState.CreatureTypes); HarvestedItems.AddRange(otherState.HarvestedItems); TrinketTables.AddRange(otherState.TrinketTables); }
public string GetJsonState() { State = new DnDToolsState { Monsters = Monsters.Values.ToList(), CreatureTypes = CreatureTypes.Values.ToList(), HarvestedItems = HarvestedItems.Values.ToList(), TrinketTables = TrinketTables.Values.ToList(), }; return(JsonSerializer.Serialize <DnDToolsState>(State, JsonSerializeOptions)); }
public async Task ProcessFile(IFileReference fileReference) { using (var reader = await fileReference.OpenReadAsync()) { try { DnDToolsState state = await JsonSerializer.DeserializeAsync <DnDToolsState>(reader, JsonDeserializeOptions); LoadState(state); } catch (Exception e) { throw e; } } }
public void LoadState(DnDToolsState initialState) { if (State == null) { State = initialState; } else { State.AppendState(initialState); } State.HarvestedItems.ForEach(hItem => HarvestedItems.TryAdd(hItem.Name.ToLower(), hItem)); State.CreatureTypes.ForEach(cType => CreatureTypes.TryAdd(cType.ToString().ToLower(), cType)); State.TrinketTables.ForEach(tTable => TrinketTables.TryAdd(tTable.TrinketTableType.ToLower(), tTable)); State.Monsters.ForEach(mon => Monsters.TryAdd(mon.Name.ToLower(), mon)); UpdateDictionaries(); IsLoaded = true; StorageStateChanged?.Invoke(); }