/// <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); } } }
/// <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); } }
/// <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); } }
/// <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); } } }
/// <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); } } }