Verarbeitung mehrerer Benachrichtigungen mit PushSharp für iOS und Android

Ich habe einen Windows-Dienst implementiert, der alle 3 Minuten ausgeführt wird und eine Datenbank nach Benachrichtigungen abfragt, die zum Senden bereit sind. Ich sammle sie in einer Liste, um festzustellen, ob es sich um eine iOS- oder eine Android-Benachrichtigung handelt, und rufe dann den PushBroker auf (die PushSharp-Lösung ist als kompilierte Lösung in meinem Lösungsprojekt enthalten). Anschließend durchlaufe ich die Elemente in der Liste, um sie wie folgt zu verarbeiten:

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

   }

Die Nachrichten werden erfolgreich gesendet. Ich habe jedoch das Problem, dass 1. versucht wird, die Antworten abzurufen, wenn die Nachricht erfolgreich gesendet wurde oder fehlgeschlagen ist, Grund für den Fehler usw. Dies sind Delegaten im PushSharp-Code, damit ich das Protokoll erstellen kann Antworten auf unsere Datenbank. Zur Verdeutlichung ... Ich muss wissen, von welchem ​​Eingabeversuch (deviceID) die Fehlerantworten stammen. Ich kann anhand der generierten Nachrichten der benachrichtigenden Delegierten nichts feststellen, da die Daten nicht mit einem bestimmten Geräte-ID-Übermittlungsversuch verknüpft sind. 2. Ich möchte auch in der Lage sein, den Pushsharp-Code unverändert zu lassen und Methoden aus meinem Code aufzurufen, um Probleme beim Zusammenführen zu reduzieren, wenn in Zukunft Aktualisierungen am Pushsharp-Code vorgenommen werden. Irgendwelche Vorschläge? Wenn jemand mir Beispiele geben kann, wie die Antwortereignisse und Delegaten zum Abrufen von Informationen für jeden Benachrichtigungssendeversuch verwendet werden, würde ich mich freuen. Danke dir.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage