Ejemplo n.º 1
0
        /// <summary>
        /// Processes the queried character's market orders. Called from the history fetch on
        /// success or failure, but merges the original orders too.
        /// </summary>
        /// <param name="result"></param>
        /// <remarks>This method is sensitive to which "issued for" orders gets queried first</remarks>
        private void OnMarketOrdersCompleted(EsiResult <EsiAPIMarketOrders> result,
                                             object regularOrders)
        {
            var target = m_ccpCharacter;

            // Character may have been deleted since we queried
            if (target != null && regularOrders is EsiAPIMarketOrders orders)
            {
                var endedOrders = new LinkedList <MarketOrder>();
                var allOrders   = new EsiAPIMarketOrders();
                // Add normal orders first
                if (orders != null)
                {
                    allOrders.AddRange(orders);
                }
                // Add result second
                if (result != null && !result.HasError && result.Result != null)
                {
                    allOrders.AddRange(result.Result);
                }
                allOrders.SetAllIssuedBy(target.CharacterID);
                target.CharacterMarketOrders.Import(allOrders, IssuedFor.Character,
                                                    endedOrders);
                EveMonClient.OnCharacterMarketOrdersUpdated(target, endedOrders);
                allOrders.Clear();
                // Notify if either one failed
                if (result != null && result.HasError)
                {
                    EveMonClient.Notifications.NotifyCharacterMarketOrdersError(target,
                                                                                result);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes the queried character's corporation market orders.
        /// </summary>
        /// <param name="result"></param>
        /// <remarks>This method is sensitive to which market orders gets queried first</remarks>
        private void OnMarketOrdersUpdated(EsiAPIMarketOrders result)
        {
            var target = m_ccpCharacter;

            // Character may have been deleted since we queried
            if (target != null)
            {
                var endedOrders = new LinkedList <MarketOrder>();
                target.CorporationMarketOrders.Import(result, IssuedFor.Corporation,
                                                      endedOrders);
                EveMonClient.OnCorporationMarketOrdersUpdated(target, endedOrders);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Processes the queried character's market orders.
        /// </summary>
        /// <param name="result"></param>
        /// <remarks>This method is sensitive to which "issued for" orders gets queried first</remarks>
        private void OnMarketOrdersUpdated(EsiAPIMarketOrders result)
        {
            var target = m_ccpCharacter;

            // Character may have been deleted since we queried
            if (target != null)
            {
                var orders = result.ToXMLItem(target.CharacterID).Orders;
                foreach (var order in orders)
                {
                    order.IssuedFor = IssuedFor.Character;
                }
                var endedOrders = new LinkedList <MarketOrder>();
                target.CharacterMarketOrders.Import(orders, endedOrders);
                EveMonClient.OnCharacterMarketOrdersUpdated(target, endedOrders);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Processes the queried character's market orders. Called from the history fetch on
        /// success or failure, but merges the original orders too.
        /// </summary>
        /// <param name="result"></param>
        /// <remarks>This method is sensitive to which "issued for" orders gets queried first</remarks>
        private void OnMarketOrdersCompleted(EsiResult <EsiAPIMarketOrders> result,
                                             object regularOrders)
        {
            var target = m_ccpCharacter;

            // Character may have been deleted since we queried
            if (target != null && regularOrders is EsiAPIMarketOrders orders)
            {
                var endedOrders = new LinkedList <MarketOrder>();
                var allOrders   = new EsiAPIMarketOrders();
                m_orderHistoryResponse = result.Response;
                // Ignore the If-Modified-Since and cache timer on order history to ensure
                // that old orders are not wiped out
                if (m_orderHistoryResponse != null)
                {
                    m_orderHistoryResponse.Expires = null;
                    m_orderHistoryResponse.ETag    = null;
                }
                // Add normal orders first
                if (orders != null)
                {
                    allOrders.AddRange(orders);
                }
                // Add result second
                if (result != null && !result.HasError && result.Result != null)
                {
                    allOrders.AddRange(result.Result);
                }
                allOrders.SetAllIssuedBy(target.CharacterID);
                target.CharacterMarketOrders.Import(allOrders, IssuedFor.Character,
                                                    endedOrders);
                EveMonClient.OnCharacterMarketOrdersUpdated(target, endedOrders);
                allOrders.Clear();
                // Notify if either one failed
                if (result != null && result.HasError)
                {
                    EveMonClient.Notifications.NotifyCharacterMarketOrdersError(target,
                                                                                result);
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Queries the character's historical market orders. The orders get imported even if
        /// fetching the historical orders fail.
        /// </summary>
        private void OnMarketOrdersUpdated(EsiAPIMarketOrders result)
        {
            var target = m_ccpCharacter;

            // Character may have been deleted since we queried
            if (target != null)
            {
                var esiKey = target.Identity.FindAPIKeyWithAccess(ESIAPICharacterMethods.
                                                                  MarketOrders);
                if (esiKey != null && !EsiErrors.IsErrorCountExceeded)
                {
                    EveMonClient.APIProviders.CurrentProvider.QueryEsi <EsiAPIMarketOrders>(
                        ESIAPICharacterMethods.MarketOrdersHistory, OnMarketOrdersCompleted,
                        new ESIParams(m_orderHistoryResponse, esiKey.AccessToken)
                    {
                        ParamOne = target.CharacterID
                    }, result);
                }
                else
                {
                    OnMarketOrdersCompleted(null, result);
                }
            }
        }