/// <summary> /// Updates the characters list with the given CCP data. /// </summary> /// <param name="identities"></param> private void ImportIdentities(IEnumerable <ISerializableCharacterIdentity> identities) { // Clear the API key on this character foreach (CharacterIdentity id in EveMonClient.CharacterIdentities.Where(id => id.APIKeys.Contains(this))) { id.APIKeys.Remove(this); } // Return if there were errors in the query if (identities == null) { return; } // Assign owned identities to this API key List <ISerializableCharacterIdentity> serializableCharacterIdentities = identities.ToList(); foreach (CharacterIdentity id in serializableCharacterIdentities.Select( serialID => EveMonClient.CharacterIdentities[serialID.ID] ?? EveMonClient.CharacterIdentities.Add(serialID.ID, serialID.Name))) { // Update the other info as they may have changed ISerializableCharacterIdentity characterIdentity = serializableCharacterIdentities.First(x => x.ID == id.CharacterID); id.CorporationID = characterIdentity.CorporationID; id.CorporationName = characterIdentity.CorporationName; id.AllianceID = characterIdentity.AllianceID; id.AllianceName = characterIdentity.AllianceName; id.FactionID = characterIdentity.FactionID; id.FactionName = characterIdentity.FactionName; // Add the API key to the identity id.APIKeys.Add(this); if (id.CCPCharacter == null) { continue; } // Update the other info id.CCPCharacter.CorporationID = id.CorporationID; id.CCPCharacter.CorporationName = id.CorporationName; id.CCPCharacter.AllianceID = id.AllianceID; id.CCPCharacter.AllianceName = id.AllianceName; id.CCPCharacter.FactionID = id.FactionID; id.CCPCharacter.FactionName = id.FactionName; // Notify subscribers EveMonClient.OnCharacterUpdated(id.CCPCharacter); } m_characterListUpdated = true; // Fires the event regarding the character list update EveMonClient.OnCharacterListUpdated(this); // API collection changed, so we'll need to reprocess accounts. EveMonClient.OnAPIKeyCollectionChanged(); }
/// <summary> /// Gets the character identity. /// </summary> /// <param name="character">The character.</param> /// <returns></returns> // Retrieve the identity and create one if needed private static CharacterIdentity GetIdentity(ISerializableCharacterIdentity character) => EveMonClient.CharacterIdentities[character.ID] ?? EveMonClient.CharacterIdentities.Add(character.ID, character.Name, character.CorporationID, character.CorporationName, character.AllianceID, character.AllianceName, character.FactionID, character.FactionName);
/// <summary> /// Gets the character identity. /// </summary> /// <param name="character">The character.</param> /// <returns></returns> // Retrieve the identity and create one if needed private static CharacterIdentity GetIdentity(ISerializableCharacterIdentity character) => EveMonClient.CharacterIdentities[character.ID] ?? EveMonClient.CharacterIdentities.Add(character.ID, character.Name);