/// <summary> /// Serializes the current list of defaults to XML. /// </summary> /// <returns>New list of serialized defaults</returns> internal List <DefaultPack> SerializeDefaults() { // Return list. List <DefaultPack> defaultList = new List <DefaultPack>(); // Iterate through each key (ItemClass.Service) in our dictionary. foreach (ItemClass.Service service in defaultsDict.Keys) { // Iterate through each key (ItemClass.SubService) in our sub-dictionary and serialise it into a DefaultPack. foreach (ItemClass.SubService subService in defaultsDict[service].Keys) { DefaultPack defaultPack = new DefaultPack { service = service, subService = subService, pack = defaultsDict[service][subService].name }; // Add new building record to return list.e. defaultList.Add(defaultPack); } } return(defaultList); }
/// <summary> /// Deserializes the provided XML default list. /// </summary> /// <param name="list">XML DefaultPack list to deserialize</param> internal void DeserializeDefaults(List <DefaultPack> list) { // Deserialise default pop pack list into dictionary. for (int i = 0; i < list.Count; ++i) { DefaultPack defaultPack = list[i]; // Find target preset. DataPack calcPack = calcPacks?.Find(pack => (pack?.name != null && pack.name.Equals(defaultPack.pack))); if (calcPack?.name == null) { Logging.Error("Couldn't find pop calculation pack ", defaultPack.pack, " for sub-service ", defaultPack.subService.ToString()); continue; } // Add service to our dictionary. ChangeDefault(defaultPack.service, defaultPack.subService, calcPack); } }