/// <summary> /// Imports an enumeration of API objects. /// </summary> /// <param name="events">The serializable calendar events from the API.</param> internal void Import(EsiAPICalendarEvents events) { if (m_eventCounter == 0) { Items.Clear(); EveMonClient.Notifications.InvalidateAPIError(); lock (m_counterLock) { m_eventCounter = events.Count; } // Import the events from the API; note that a request must be made for details // for every event! foreach (EsiAPICalendarEvent srcEvent in events) { long id = srcEvent.EventID; if (EsiErrors.IsErrorCountExceeded) { break; } // Query each individual event; maintaining etags/expiration for all of // them is not really worth it EveMonClient.APIProviders.CurrentProvider.QueryEsi <EsiAPICalendarEvent>( ESIAPICharacterMethods.UpcomingCalendarEventDetails, OnCalendarEventDownloaded, new ESIParams() { ParamOne = id }, id); } } }
/// <summary> /// Processes the queried character's upcoming calendar events. /// </summary> /// <param name="result"></param> private void OnUpcomingCalendarEventsUpdated(EsiAPICalendarEvents result) { var target = m_ccpCharacter; // Character may have been deleted since we queried if (target != null) { target.UpcomingCalendarEvents.Import(result); EveMonClient.OnCharacterUpcomingCalendarEventsUpdated(target); } }
/// <summary> /// Imports an enumeration of API objects. /// </summary> /// <param name="events">The serializable calendar events from the API.</param> internal void Import(EsiAPICalendarEvents events) { if (m_eventCounter == 0) { Items.Clear(); EveMonClient.Notifications.InvalidateAPIError(); lock (m_counterLock) { m_eventCounter = events.Count; } // Import the events from the API; note that a request must be made for details // for every event! foreach (EsiAPICalendarEvent srcEvent in events) { long id = srcEvent.EventID; // Query each individual event EveMonClient.APIProviders.CurrentProvider.QueryEsiAsync <EsiAPICalendarEvent>( ESIAPICharacterMethods.UpcomingCalendarEventDetails, id, OnCalendarEventDownloaded, id); } } }