/// <summary> /// Constructor for CCP Characters. /// </summary> /// <param name="uri">URI of the character</param> /// <param name="result">Serialized Result</param> public UriCharacterEventArgs(Uri uri, SerializableCCPCharacter result) { m_uri = uri; m_result = result; HasError = false; Error = String.Empty; }
/// <summary> /// Constructor for API Characters. /// </summary> /// <param name="uri">URI of the character</param> /// <param name="result">API Result</param> public UriCharacterEventArgs(Uri uri, APIResult<SerializableAPICharacterSheet> result) { m_uri = uri; m_apiResult = result; m_result = m_apiResult.Result; HasError = m_apiResult.HasError; Error = m_apiResult.ErrorMessage; }
/// <summary> /// Imports data from the given character sheet informations /// </summary> /// <param name="serial">The serialized character sheet</param> protected void Import(SerializableCharacterSheetBase serial) { bool fromCCP = (serial is SerializableAPICharacterSheet); // Bio m_name = serial.Name; m_birthday = serial.Birthday; m_race = serial.Race; m_ancestry = serial.Ancestry; m_gender = serial.Gender; m_balance = serial.Balance; m_bloodLine = serial.BloodLine; m_corporationName = serial.CorporationName; m_corporationID = serial.CorporationID; m_allianceName = serial.AllianceName; m_allianceID = serial.AllianceID; m_cloneName = serial.CloneName; m_cloneSkillPoints = serial.CloneSkillPoints; // Attributes m_attributes[(int)EveAttribute.Intelligence].Base = serial.Attributes.Intelligence; m_attributes[(int)EveAttribute.Perception].Base = serial.Attributes.Perception; m_attributes[(int)EveAttribute.Willpower].Base = serial.Attributes.Willpower; m_attributes[(int)EveAttribute.Charisma].Base = serial.Attributes.Charisma; m_attributes[(int)EveAttribute.Memory].Base = serial.Attributes.Memory; // Skills : reset all > update all foreach (var skill in m_skills) { skill.Reset(fromCCP); } foreach (var serialSkill in serial.Skills.Where(x => m_skills[x.ID] != null)) { // Take care of the new skills not in our datafiles yet. Update if it exists. m_skills[serialSkill.ID].Import(serialSkill, fromCCP); } // Certificates : reset > mark the granted ones > update the other ones foreach (var cert in m_certificates) { cert.Reset(); } foreach (var serialCert in serial.Certificates.Where(x => m_certificates[x.CertificateID] != null)) { // Take care of the new certs not in our datafiles yet. Mark as granted if it exists. m_certificates[serialCert.CertificateID].MarkAsGranted(); } while (true) { bool updatedAnything = false; foreach (var cert in m_certificates) { updatedAnything |= cert.TryUpdateCertificateStatus(); } if (!updatedAnything) break; } }
/// <summary> /// Gets the character identity. /// </summary> /// <param name="character">The character.</param> /// <returns></returns> private CharacterIdentity GetIdentity(SerializableCharacterSheetBase character) { // Retrieve the identity and create one if needed var identity = EveClient.CharacterIdentities[character.ID]; if (identity == null) { identity = EveClient.CharacterIdentities.Add(character.ID, character.Name); } return identity; }