Example #1
0
 public static void DisableAllPushNotifications(AbstractLogger logger, IDatabase database, IMixWebCallFactory mixWebCallFactory, string swid, Action <IDisableAllPushNotificationsResult> callback)
 {
     try
     {
         SessionDocument sessionDocument = database.GetSessionDocument(swid);
         if (sessionDocument.PushNotificationToken == null)
         {
             callback(new DisableAllPushNotificationsResult(success: false));
         }
         else
         {
             BaseUserRequest request = new BaseUserRequest();
             IWebCall <BaseUserRequest, BaseResponse> webCall = mixWebCallFactory.PushNotificationsSettingDeletePost(request);
             webCall.OnResponse += delegate
             {
                 try
                 {
                     database.UpdateSessionDocument(swid, delegate(SessionDocument d)
                     {
                         d.PushNotificationToken           = null;
                         d.PushNotificationTokenType       = null;
                         d.VisiblePushNotificationsEnabled = false;
                     });
                     callback(new DisableAllPushNotificationsResult(success: true));
                 }
                 catch (Exception arg2)
                 {
                     logger.Critical("Unhandled exception: " + arg2);
                     callback(new DisableAllPushNotificationsResult(success: false));
                 }
             };
             webCall.OnError += delegate
             {
                 callback(new DisableAllPushNotificationsResult(success: false));
             };
             webCall.Execute();
         }
     }
     catch (Exception arg)
     {
         logger.Critical("Unhandled exception: " + arg);
         callback(new DisableAllPushNotificationsResult(success: false));
     }
 }