Beispiel #1
0
        /// <summary>
        /// Constructor from the API.
        /// </summary>
        /// <param name="ccpCharacter">The CCP character.</param>
        /// <param name="src">The source.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        internal Contract(CCPCharacter ccpCharacter, SerializableContractListItem src)
        {
            src.ThrowIfNull(nameof(src));

            Character = ccpCharacter;
            PopulateContractInfo(src);
            m_state = GetState(src);
        }
Beispiel #2
0
        /// <summary>
        /// Populates the serialization object contract with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        private void PopulateContractInfo(SerializableContractListItem src)
        {
            ContractAvailability avail;
            ContractType         type;

            src.ThrowIfNull(nameof(src));

            m_method = src.APIMethod;

            ID               = src.ContractID;
            IssuerID         = src.IssuerID;
            AssigneeID       = src.AssigneeID;
            Description      = string.IsNullOrWhiteSpace(src.Title) ? "(None)" : src.Title;
            IssuedFor        = src.ForCorp ? IssuedFor.Corporation : IssuedFor.Character;
            Issued           = src.DateIssued;
            Expiration       = src.DateExpired;
            Duration         = (int)Math.Round(src.DateExpired.Subtract(src.DateIssued).TotalDays);
            DaysToComplete   = src.NumDays;
            Price            = src.Price;
            Reward           = src.Reward;
            Collateral       = src.Collateral;
            Buyout           = src.Buyout;
            Volume           = src.Volume;
            m_startStationID = src.StartStationID;
            m_endStationID   = src.EndStationID;
            UpdateStation();
            UpdateContractInfo(src);

            // Parse availability and contract type
            if (!Enum.TryParse(src.Availability, true, out avail))
            {
                avail = ContractAvailability.None;
            }
            Availability = avail;
            if (!Enum.TryParse(src.Type, true, out type))
            {
                type = ContractType.None;
            }
            ContractType = type;
            // Issuer and assignee
            m_issuer = src.ForCorp ? Character.Corporation.Name : EveIDToName.GetIDToName(
                src.IssuerID);
            m_assignee = EveIDToName.GetIDToName(src.AssigneeID);

            /*
             * // Retrieve items
             * if (ContractType != ContractType.Courier)
             *  GetContractData<EsiAPIContractItems>(OnContractItemsDownloaded,
             *      ESIAPICorporationMethods.CorporationContractItems,
             *      ESIAPICharacterMethods.ContractItems);
             * // Retrieve bids
             * if (ContractType == ContractType.Auction)
             *  GetContractData<EsiAPIContractBids>(OnContractBidsUpdated,
             *      ESIAPICorporationMethods.CorporationContractBids,
             *      ESIAPICharacterMethods.ContractBids);
             */
        }
Beispiel #3
0
        /// <summary>
        /// Constructor from the API.
        /// </summary>
        /// <param name="ccpCharacter">The CCP character.</param>
        /// <param name="src">The source.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        internal Contract(CCPCharacter ccpCharacter, SerializableContractListItem src)
        {
            src.ThrowIfNull(nameof(src));

            m_bidsResponse = m_itemsResponse = null;
            Character      = ccpCharacter;
            PopulateContractInfo(src);
            m_state = GetState(src);
            m_bids  = new LinkedList <ContractBid>();
        }
Beispiel #4
0
        /// <summary>
        /// Populates the serialization object contract with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        private void PopulateContractInfo(SerializableContractListItem src)
        {
            src.ThrowIfNull(nameof(src));

            m_method = src.APIMethod;

            ID               = src.ContractID;
            IssuerID         = src.IssuerID;
            AssigneeID       = src.AssigneeID;
            Description      = String.IsNullOrWhiteSpace(src.Title) ? "(None)" : src.Title;
            IssuedFor        = src.ForCorp ? IssuedFor.Corporation : IssuedFor.Character;
            Issued           = src.DateIssued;
            Expiration       = src.DateExpired;
            Duration         = Convert.ToInt32(src.DateExpired.Subtract(src.DateIssued).TotalDays);
            DaysToComplete   = src.NumDays;
            Price            = src.Price;
            Reward           = src.Reward;
            Collateral       = src.Collateral;
            Buyout           = src.Buyout;
            Volume           = src.Volume;
            m_startStationID = src.StartStationID;
            m_endStationID   = src.EndStationID;
            UpdateStation();
            UpdateContractInfo(src);

            Availability = Enum.IsDefined(typeof(ContractAvailability), src.Availability)
                ? (ContractAvailability)Enum.Parse(typeof(ContractAvailability), src.Availability)
                : ContractAvailability.None;

            ContractType = Enum.IsDefined(typeof(ContractType), src.Type)
                ? (ContractType)Enum.Parse(typeof(ContractType), src.Type)
                : ContractType.None;

            m_issuer = src.ForCorp
                ? Character.Corporation.Name
                : src.IssuerID == Character.CharacterID
                    ? Character.Name
                    : EveIDToName.GetIDToName(src.IssuerID);


            m_assignee = src.AssigneeID == Character.CharacterID
                ? Character.Name
                : src.AssigneeID == Character.CorporationID
                    ? Character.Corporation.Name
                    : EveIDToName.GetIDToName(src.AssigneeID);


            if (ContractType != ContractType.Courier)
            {
                GetContractItems();
            }
        }
Beispiel #5
0
        /// <summary>
        /// Populates the serialization object contract with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        private void PopulateContractInfo(SerializableContractListItem src)
        {
            ContractAvailability avail;
            ContractType         type;

            src.ThrowIfNull(nameof(src));

            m_method         = src.APIMethod;
            ID               = src.ContractID;
            IssuerID         = src.IssuerID;
            AssigneeID       = src.AssigneeID;
            Description      = src.Title.IsEmptyOrUnknown() ? "(None)" : src.Title;
            IssuedFor        = src.ForCorp ? IssuedFor.Corporation : IssuedFor.Character;
            Issued           = src.DateIssued;
            Expiration       = src.DateExpired;
            Duration         = (int)Math.Round(src.DateExpired.Subtract(src.DateIssued).TotalDays);
            DaysToComplete   = src.NumDays;
            Price            = src.Price;
            Reward           = src.Reward;
            Collateral       = src.Collateral;
            Buyout           = src.Buyout;
            Volume           = src.Volume;
            m_startStationID = src.StartStationID;
            m_endStationID   = src.EndStationID;
            UpdateStation();
            UpdateContractInfo(src);

            // Parse availability and contract type
            if (!Enum.TryParse(src.Availability, true, out avail))
            {
                avail = ContractAvailability.None;
            }
            Availability = avail;
            if (!Enum.TryParse(src.Type, true, out type))
            {
                type = ContractType.None;
            }
            ContractType = type;
            // Issuer and assignee
            m_issuer = src.ForCorp ? Character.Corporation.Name : EveIDToName.GetIDToName(
                src.IssuerID);
            m_assignee = EveIDToName.GetIDToName(src.AssigneeID);
        }