/// <summary> /// Tries to deserialize the EveIDToName file. /// </summary> private static void TryDeserializeCacheFile() { SerializableEveIDToName cache = null; // Deserialize the file cache = Util.DeserializeXML <SerializableEveIDToName>(s_file); // Reset the cache if anything went wrong if (cache.Entities.Any(x => x.ID == 0) || cache.Entities.Any(x => x.Name == String.Empty)) { cache = null; } if (cache == null) { EveClient.Trace("Deserializing EveIDToName failed. File may be corrupt. Deleting file."); File.Delete(s_file); return; } // Add the data to the dictionary foreach (var entity in cache.Entities) { s_cacheList.Add(entity.ID, entity.Name); } }
/// <summary> /// Initializes the cache from file. /// </summary> public static void InitializeFromFile() { // Quit if the client has been shut down if (EveMonClient.Closed) { return; } string file = LocalXmlCache.GetFileInfo(Filename).FullName; if (!File.Exists(file) || s_cacheList.Any()) { return; } // Deserialize the file SerializableEveIDToName cache = Util.DeserializeXmlFromFile <SerializableEveIDToName>(file); // Reset the cache if anything went wrong if (cache == null || cache.Entities.Any(x => x.ID == 0) || cache.Entities.Any(x => x.Name.Length == 0)) { EveMonClient.Trace("Deserializing failed. File may be corrupt. Deleting file."); FileHelper.DeleteFile(file); return; } // Add the data to the cache Import(cache.Entities.Select(entity => new SerializableCharacterNameListItem { ID = entity.ID, Name = entity.Name })); }
/// <summary> /// Saves this cache list to a file. /// </summary> public static void Save() { SerializableEveIDToName serial = Export(); XmlSerializer xs = new XmlSerializer(typeof(SerializableEveIDToName)); // Save in file FileHelper.OverwriteOrWarnTheUser(s_file, fs => { xs.Serialize(fs, serial); fs.Flush(); return(true); }); }
/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableEveIDToName Export() { var serial = new SerializableEveIDToName(); lock (s_cacheList) { serial.Entities.AddRange(s_cacheList.Select(item => new SerializableEveIDToNameListItem { ID = item.Key, Name = item.Value, })); } return(serial); }
/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableEveIDToName Export() { IEnumerable <SerializableEveIDToNameListItem> entitiesList = s_cacheList .Select( item => new SerializableEveIDToNameListItem { ID = item.Key, Name = item.Value, }); SerializableEveIDToName serial = new SerializableEveIDToName(); serial.Entities.AddRange(entitiesList); return(serial); }
/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableEveIDToName Export() { var serial = new SerializableEveIDToName(); lock (s_cacheList) { serial.Entities.AddRange(s_cacheList.Select(item => new SerializableEveIDToNameListItem { ID = item.Key, // Should never be null, but better than crashing... Name = item.Value?.Value ?? EveMonConstants.UnknownText, })); } return(serial); }
/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableEveIDToName Export() { var serial = new SerializableEveIDToName(); var entitiesList = new List <SerializableEveIDToNameListItem>(); foreach (var item in s_cacheList) { entitiesList.Add(new SerializableEveIDToNameListItem() { ID = item.Key, Name = item.Value, }); } serial.Entities.AddRange(entitiesList); return(serial); }
/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableEveIDToName Export() { var serial = new SerializableEveIDToName(); var entitiesList = new List<SerializableEveIDToNameListItem>(); foreach (var item in s_cacheList) { entitiesList.Add(new SerializableEveIDToNameListItem() { ID = item.Key, Name = item.Value, }); } serial.Entities.AddRange(entitiesList); return serial; }