Exemple #1
0
 /// <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);
         }
     }
 }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
 /// <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);
         }
     }
 }