Procesando múltiples notificaciones con PushSharp para iOS y Android

He implementado un servicio de Windows que se ejecuta cada 3 minutos y sondea una base de datos para las notificaciones que están listas para ser enviadas. Los recopilo en una lista, determina si se trata de una ios o una notificación de Android y luego llamo al PushBroker (la solución PushSharp se incluye como una solución compilada en mi proyecto de solución). Luego, itero los elementos de la lista para procesarlos de la siguiente manera:

    static void ProcessIOS(List<Client> IOS)
   {
       PushBroker push = new PushBroker();
       push.OnNotificationSent += NotificationSent;
       push.OnChannelException += ChannelException;
       push.OnServiceException += ServiceException;
       push.OnNotificationFailed += NotificationFailed;
       push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
       push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
       push.OnChannelCreated += ChannelCreated;
       push.OnChannelDestroyed += ChannelDestroyed;
       foreach (var entry in IOS)
           {
               string dev = entry.Device_Id.ToString();
               string load = entry.Push_Payload.ToString();
               int count = entry.Unread_Count;
              var appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../productionfile.p12"));
               push.RegisterAppleService(new ApplePushChannelSettings(true, appleCert, "password")); //Extension method
                     push.QueueNotification(new AppleNotification()
                                          .ForDeviceToken(dev)
                                          .WithAlert(load)
                                          .WithBadge(count));
                  }

   }

Los mensajes se envían con éxito, sin embargo, el problema que tengo es 1. tratando de recuperar las respuestas cuando el mensaje se envió con éxito o no, motivo del error, etc. Estos son delegados dentro del código Push Sharp para que pueda registrar el Respuestas a nuestra base de datos. Para aclarar ... Necesito saber de qué intento de entrada (ID de dispositivo) provienen las respuestas de error. No puedo saber por los mensajes generados de los delegados notificantes ya que los datos no están vinculados a ningún intento de entrega de Deviceid en particular. 2. También quiero poder mantener el código pushsharp tal como está sin modificaciones y métodos de llamada desde mi código para reducir los problemas de fusión cuando se realicen actualizaciones al código pushsharp en el futuro. ¿Alguna sugerencia? Si alguien me puede dar ejemplos sobre cómo usar los eventos de respuesta y los delegados para recuperar información para cada intento de envío de notificaciones, lo agradecería. gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta