Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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
            }));
        }
Ejemplo n.º 3
0
        /// <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);
            });
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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;
        }