protected string SerializeMessageFromProperties(Platform?platform)
        {
            if (!platform.HasValue)
            {
                GCMNotificationPayload  gcmPayload  = model.GCMNotificationPayload ?? new GCMNotificationPayload(model.NotificationPayload);
                APNSNotificationPayload apnsPayload = model.APNSNotificationPayload ?? new APNSNotificationPayload(model.NotificationPayload);

                APNSPushMessage generatedApns = GenerateAPNSMessageFromPayload(apnsPayload);
                GCMPushMessage  generatedGcm  = GenerateGCMMessageFromPayload(gcmPayload);
                return(CreateSNSNotificationMessage(generatedApns, generatedGcm, model.TargetEnvironment, apnsPayload.CustomPayload, gcmPayload.CustomPayload, model.SnsDefaultMessage));
            }

            switch (platform.Value)
            {
            case Platform.APNS:
                APNSNotificationPayload apnsPayload   = model.APNSNotificationPayload ?? new APNSNotificationPayload(model.NotificationPayload);
                APNSPushMessage         generatedApns = GenerateAPNSMessageFromPayload(apnsPayload);
                return(CreateSNSNotificationMessage(generatedApns, null, model.TargetEnvironment, apnsPayload.CustomPayload, null, model.SnsDefaultMessage));

            case Platform.GCM:
                GCMNotificationPayload gcmPayload   = model.GCMNotificationPayload ?? new GCMNotificationPayload(model.NotificationPayload);
                GCMPushMessage         generatedGcm = GenerateGCMMessageFromPayload(gcmPayload);
                return(CreateSNSNotificationMessage(null, generatedGcm, model.TargetEnvironment, null, gcmPayload.CustomPayload, model.SnsDefaultMessage));

            default:
                return("");
            }
        }
 public PublishOperatorModel(PublishRequest model, bool consistentRead = false)
 {
     this.TimeToLive              = model.TimeToLive;
     this.SnsDefaultMessage       = model.SnsDefaultMessage;
     this.TargetEnvironment       = model.TargetEnvironment;
     this.TargetPlatform          = model.TargetPlatform;
     this.NotificationPayload     = model.NotificationPayload;
     this.APNSNotificationPayload = model.APNSNotificationPayload ?? new APNSNotificationPayload(model.NotificationPayload);
     this.GCMNotificationPayload  = model.GCMNotificationPayload ?? new GCMNotificationPayload(model.NotificationPayload);
 }
        protected GCMPushMessage GenerateGCMMessageFromPayload(GCMNotificationPayload payload)
        {
            GCMPushMessage gcmMessage = new GCMPushMessage();

            gcmMessage.title = payload.Title;
            gcmMessage.body  = payload.Body;
            gcmMessage.badge = payload.Badge;
            gcmMessage.sound = payload.Sound;

            return(gcmMessage);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Set the payload for this notification publish request
 /// </summary>
 /// <param name="apnsPayload"> Payload for only APNS </param>
 /// <param name="gcmPayload"> Payload for only GCM </param>
 public void SetPayload(APNSNotificationPayload apnsPayload, GCMNotificationPayload gcmPayload)
 {
     this.APNSNotificationPayload = apnsPayload;
     this.GCMNotificationPayload  = gcmPayload;
 }