/// <summary>
        /// Agent that runs a scheduled task
        /// </summary>
        /// <param name="task">
        /// The invoked task
        /// </param>
        /// <remarks>
        /// This method is called when a periodic or resource intensive task is invoked
        /// </remarks>
        protected override void OnInvoke(ScheduledTask task)
        {
#if DEBUG
            AgentExitReason reason = task.LastExitReason;
            DebugUtility.SaveDiagnostics(new Diagnostics()
            {
                DeviceUniqueId = DebugUtility.GetDeviceUniqueID(), AgentExitReason = reason.ToString()
            });
            Debug.WriteLine("Agent Last Exited for Reason: " + reason.ToString());
            DebugUtility.DebugStartStopwatch();
            DebugUtility.DebugOutputMemoryUsage("Scheduled Task Initial Memory Snapshot");
#endif
            source = new PhoneBirthdaySource();
            source.GetEntriesCompleted += source_GetEntriesCompleted;
            source.BeginGetAllEntries();
        }