/// <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;
 }
示例#2
0
 /// <summary>
 /// Updates this character with the given informations.
 /// </summary>
 /// <param name="identity"></param>
 /// <param name="uri"></param>
 /// <param name="result"></param>
 internal void Update(CharacterIdentity identity, Uri uri, SerializableCCPCharacter result)
 {
     CharacterID = identity.CharacterID;
     Identity = identity;
     m_uri = uri;
     Import(result);
 }
        internal SerializableCCPCharacter CreateCharacter()
        {
            var serial = new SerializableCCPCharacter()
            {
                ID = 9999999,
                Name = tbCharacterName.Text,
                Birthday = DateTime.UtcNow,
                Race = m_race.ToString(),
                BloodLine = m_bloodline.ToString().Replace("_", "-"),
                Ancestry = m_ancestry.ToString().Replace("_", " "),
                Gender = m_gender.ToString(),
                CorporationName = "Blank Character's Corp",
                CorporationID = 9999999,
                CloneName = "Clone Grade Alpha",
                CloneSkillPoints = 900000,
                Balance = 0,

                Attributes = new SerializableCharacterAttributes()
                {
                    Intelligence = EveConstants.CharacterBaseAttributePoints + 3,
                    Memory = EveConstants.CharacterBaseAttributePoints + 3,
                    Perception = EveConstants.CharacterBaseAttributePoints + 3,
                    Willpower = EveConstants.CharacterBaseAttributePoints + 3,
                    Charisma = EveConstants.CharacterBaseAttributePoints + 2
                },

                ImplantSets = new SerializableImplantSetCollection()
                {
                    API = new SerializableSettingsImplantSet() { Name = "Implants from API" },
                    OldAPI = new SerializableSettingsImplantSet() { Name = "Previous implants from the API" },
                },

                Skills = GetSkillsForRace(),

                Certificates = new List<SerializableCharacterCertificate>(),
            };

            return serial;
        }
示例#4
0
        /// <summary>
        /// Creates the character.
        /// </summary>
        /// <returns></returns>
        private static SerializableCCPCharacter CreateCharacter()
        {
            SerializableCCPCharacter serial = new SerializableCCPCharacter
            {
                ID = UriCharacter.BlankCharacterID,
                Name = CharacterName,
                Birthday = DateTime.UtcNow,
                Race = Race.ToString(),
                BloodLine = Bloodline.ToString().Replace("_", "-"),
                Ancestry = Ancestry.ToString().Replace("_", " "),
                Gender = Gender.ToString(),
                CorporationName = "Blank Character's Corp",
                CorporationID = 9999999,
                Balance = 0,
                Attributes = new SerializableCharacterAttributes
                {
                    Intelligence =
                        EveConstants.CharacterBaseAttributePoints + 3,
                    Memory = EveConstants.CharacterBaseAttributePoints + 3,
                    Perception =
                        EveConstants.CharacterBaseAttributePoints + 3,
                    Willpower =
                        EveConstants.CharacterBaseAttributePoints + 3,
                    Charisma =
                        EveConstants.CharacterBaseAttributePoints + 2
                },
                ImplantSets = new SerializableImplantSetCollection
                {
                    ActiveClone = new SerializableSettingsImplantSet
                    { Name = "Active Clone" },
                },
            };

            serial.Skills.AddRange(GetSkillsForRace());

            return serial;
        }
        /// <summary>
        /// Saves the blank character.
        /// </summary>
        /// <param name="serial">The serial.</param>
        private void Save(SerializableCCPCharacter serial)
        {
            using (SaveFileDialog fileDialog = new SaveFileDialog())
            {
                fileDialog.Title = "Save Blank Character";
                fileDialog.Filter = "Blank Character CCPXML (*.xml) | *.xml";
                fileDialog.FileName = String.Format(CultureConstants.DefaultCulture, "{0}.xml", serial.Name);
                fileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                DialogResult saveFile = fileDialog.ShowDialog();

                if (saveFile == DialogResult.OK)
                {
                    // Disabling control edit ability
                    blankCharacterControl.Enabled = false;
                    
                    var xmlDoc = Util.SerializeToXmlDocument(serial.GetType(), serial);
                    string content = Util.GetXMLStringRepresentation(xmlDoc);
                    FileHelper.OverwriteOrWarnTheUser(fileDialog.FileName, fs =>
                    {
                        using (var writer = new StreamWriter(fs, Encoding.UTF8))
                        {
                            writer.Write(content);
                            writer.Flush();
                            writer.Close();
                        }
                        return true;
                    });

                    m_filename = fileDialog.FileName;
                    m_fileSaved = true;
                }
                else
                {
                    m_fileSaved = false;
                }
            }
        }
示例#6
0
        /// <summary>
        /// Create a serializable character sheet for this character
        /// </summary>
        /// <returns></returns>
        public override SerializableSettingsCharacter Export()
        {
            var serial = new SerializableCCPCharacter();
            Export(serial);

            // Skill queue
            serial.SkillQueue = m_queue.Export();

            // Market orders
            serial.MarketOrders = m_marketOrders.Export();

            // Industry jobs
            serial.IndustryJobs = m_industryJobs.Export();

            // Research points
            serial.ResearchPoints = m_researchPoints.Export();

            // Eve mail messages IDs
            serial.EveMailMessagesIDs = m_eveMailMessages.Export();

            // Eve notifications IDs
            serial.EveNotificationsIDs = m_eveNotifications.Export();

            // Last API updates
            foreach (var monitor in m_monitors)
            {
                var update = new SerializableAPIUpdate
                {
                    Method = monitor.Method,
                    Time = monitor.LastUpdate
                };

                serial.LastUpdates.Add(update);
            }

            return serial;
        }
示例#7
0
        /// <summary>
        /// Imports data from a serialization object
        /// </summary>
        /// <param name="serial"></param>
        public void Import(SerializableCCPCharacter serial)
        {
            Import((SerializableSettingsCharacter)serial);

            // Skill queue
            m_queue.Import(serial.SkillQueue);
            m_queue.UpdateOnTimerTick();

            // Market orders
            m_marketOrders.Import(serial.MarketOrders);

            // Industry jobs
            m_industryJobs.Import(serial.IndustryJobs);

            // Research points
            m_researchPoints.Import(serial.ResearchPoints);

            // EVE mail messages IDs
            m_eveMailMessages.Import(serial.EveMailMessagesIDs);

            // EVE notifications IDs
            m_eveNotifications.Import(serial.EveNotificationsIDs);

            // Last API updates
            foreach (var lastUpdate in serial.LastUpdates)
            {
                var monitor = m_monitors[lastUpdate.Method] as IQueryMonitorEx;
                if (monitor != null)
                    monitor.Reset(lastUpdate.Time);
            }

            // Fire the global event
            EveClient.OnCharacterChanged(this);
        }
示例#8
0
        /// <summary>
        /// Deserializes a settings file from an old format.
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        private static SerializableSettings DeserializeOldFormat(string filename)
        {
            var oldSerial = Util.DeserializeXML<OldSettings>(filename, Util.LoadXSLT(Properties.Resources.SettingsAndPlanImport));
            var serial = new SerializableSettings();

            // Accounts
            serial.Accounts.AddRange(oldSerial.Accounts);

            // Characters
            foreach (var oldCharacter in oldSerial.Characters)
            {
                // Adds the char both to the characters list and the monitored characters list.
                var character = new SerializableCCPCharacter {
                    ID = oldCharacter.ID, 
                    Name = oldCharacter.Name, 
                    Guid = Guid.NewGuid()
                };
                serial.MonitoredCharacters.Add(new MonitoredCharacterSettings { CharacterGuid = character.Guid });
                serial.Characters.Add(character);
            }

            // Plans
            foreach (var oldPlan in oldSerial.Plans)
            {
                // Look for the owner by his name
                var owner = serial.Characters.SingleOrDefault(x => x.Name == oldPlan.Owner);
                if (owner == null)
                    continue;

                // Imports the plan
                var plan = new SerializablePlan { Owner = owner.Guid, Name = oldPlan.Name };
                plan.Entries.AddRange(oldPlan.Entries);
                serial.Plans.Add(plan);
            }

            return serial;
        }
示例#9
0
 /// <summary>
 /// Deserialization constructor.
 /// </summary>
 /// <param name="identity">The identity for this character</param>
 /// <param name="serial">A deserialization object for characters</param>
 internal CCPCharacter(CharacterIdentity identity, SerializableCCPCharacter serial)
     : this(identity, serial.Guid)
 {
     Import(serial);
 }
        public SerializableCCPCharacter ToSerializableCCPCharacter()
        {
            var ccpCharacter = new SerializableCCPCharacter();
            ccpCharacter.Name = Name;
            ccpCharacter.ID = CharacterId;
            ccpCharacter.Race = Race;
            ccpCharacter.BloodLine = BloodLine;
            ccpCharacter.Gender = Gender;
            ccpCharacter.CorporationName = CorpName;
            ccpCharacter.CorporationID = 0;
            ccpCharacter.CloneName = CloneName;
            ccpCharacter.CloneSkillPoints = CloneSkillPoints;
            ccpCharacter.Balance = Balance;
            ccpCharacter.Attributes = Attributes.ToSerializableAttributes();
            ccpCharacter.ImplantSets.API = AttributeEnhancers.ToSerializableImplantSet();
            ccpCharacter.Skills = CreateSerializableCharacterSkillList();
            ccpCharacter.Certificates = CreateSerializableCharacterCertificateList();

            return ccpCharacter;
        }
示例#11
0
 /// <summary>
 /// Exported character constructor
 /// </summary>
 /// <param name="identity">The identitiy for this character</param>
 /// <param name="uri">The uri the provided deserialization object was acquired from</param>
 /// <param name="source">A deserialization object for CcpCharacters</param>
 internal UriCharacter(CharacterIdentity identity, Uri uri, SerializableCCPCharacter serial)
     : base(identity, Guid.NewGuid())
 {
     m_uri = uri;
     Import(serial);
 }
示例#12
0
 /// <summary>
 /// Deserialization constructor.
 /// </summary>
 /// <param name="identity">The identity for this character</param>
 /// <param name="serial">A deserialization object for characters</param>
 internal CCPCharacter(CharacterIdentity identity, SerializableCCPCharacter serial)
     : this(identity, serial.Guid)
 {
     Import(serial);
     m_lastAPIUpdates = serial.LastUpdates.ToList();
 }
示例#13
0
        /// <summary>
        /// Imports data from a serialization object.
        /// </summary>
        /// <param name="serial"></param>
        private void Import(SerializableCCPCharacter serial)
        {
            Import((SerializableSettingsCharacter)serial);

            // Skill queue
            SkillQueue.Import(serial.SkillQueue);

            // Market orders
            MarketOrdersImport(serial.MarketOrders);

            // Contracts
            ContractsImport(serial.Contracts);

            // Contract Bids
            CharacterContractBids.Import(serial.ContractBids);

            // Industry jobs
            IndustryJobsImport(serial.IndustryJobs);

            // EVE mail messages IDs
            EVEMailMessages.Import(serial.EveMailMessagesIDs);

            // EVE notifications IDs
            EVENotifications.Import(serial.EveNotificationsIDs);

            // Kill Logs
            KillLog.ImportFromCacheFile();

            // Fire the global event
            EveMonClient.OnCharacterUpdated(this);
        }
示例#14
0
        /// <summary>
        /// Create a serializable character sheet for this character.
        /// </summary>
        /// <returns></returns>
        public override SerializableSettingsCharacter Export()
        {
            SerializableCCPCharacter serial = new SerializableCCPCharacter();
            Export(serial);

            // Skill queue
            serial.SkillQueue.AddRange(SkillQueue.Export());

            // Market orders
            serial.MarketOrders.AddRange(MarketOrdersExport());

            // Contracts
            serial.Contracts.AddRange(ContractsExport());

            // ContractBids
            serial.ContractBids.AddRange(CharacterContractBids.Export());

            // Industry jobs
            serial.IndustryJobs.AddRange(IndustryJobsExport());

            // Eve mail messages IDs
            serial.EveMailMessagesIDs = EVEMailMessages.Export();

            // Eve notifications IDs
            serial.EveNotificationsIDs = EVENotifications.Export();

            // Last API updates
            if (QueryMonitors.Any())
            {
                m_lastAPIUpdates = QueryMonitors.Select(
                    monitor => new SerializableAPIUpdate
                                   {
                                       Method = monitor.Method.ToString(),
                                       Time = monitor.LastUpdate
                                   }).ToList();
            }

            serial.LastUpdates.AddRange(m_lastAPIUpdates);

            return serial;
        }