/// <summary> /// Ensures the eve flags data have been intialized. /// </summary> private static void EnsureInitialized() { if (s_isLoaded) { return; } SerializableEveFlags result = Util.DeserializeXmlFromString <SerializableEveFlags>( Properties.Resources.Flags, APIProvider.RowsetsTransform); Import(result); }
/// <summary> /// Imports the specified result. /// </summary> /// <param name="result">The result.</param> private static void Import(SerializableEveFlags result) { if (result == null) { EveMonClient.Trace("failed"); return; } EveMonClient.Trace("begin"); s_eveFlags = result.EVEFlags; s_isLoaded = true; EveMonClient.Trace("done"); }
/// <summary> /// Ensures the importation. /// </summary> private static void EnsureImportation() { // Quit if we already checked a minute ago or query is pending if (s_nextCheckTime > DateTime.UtcNow || s_queryPending) { return; } s_nextCheckTime = DateTime.UtcNow.AddMinutes(1); string filename = LocalXmlCache.GetFileInfo(Filename).FullName; // Update the file if we don't have it if (!File.Exists(filename)) { Task.WhenAll(UpdateFileAsync()); return; } // Exit if we have already imported the list if (s_isLoaded) { return; } // Deserialize the xml file SerializableEveFlags result = Util.DeserializeXmlFromFile <SerializableEveFlags>(filename, APIProvider.RowsetsTransform); // In case the file has an error we prevent the importation if (result == null) { FileHelper.DeleteFile(filename); s_nextCheckTime = DateTime.UtcNow; return; } // Import the data Import(result); }
/// <summary> /// Imports the specified result. /// </summary> /// <param name="result">The result.</param> private static void Import(SerializableEveFlags result) { if (result == null) { EveMonClient.Trace("failed"); return; } EveMonClient.Trace("begin"); s_eveFlags.Clear(); // This is way faster to look up flags foreach (var flag in result.EVEFlags) { s_eveFlags.Add(flag.ID, flag); } s_isLoaded = true; EveMonClient.Trace("done"); }