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("");
            }
        }
        protected APNSPushMessage GenerateAPNSMessageFromPayload(APNSNotificationPayload payload)
        {
            APNSPushMessage apnsMessage = new APNSPushMessage();

            var alert = new APNSPushMessage.APNSAlert();

            alert.title          = payload.Title;
            alert.body           = payload.Body;
            alert.title_loc_key  = payload.Title_Loc_Key;
            alert.title_loc_args = payload.Title_Loc_Args;
            alert.action_loc_key = payload.Action_Loc_Key;
            alert.loc_key        = payload.Loc_Key;
            alert.loc_args       = payload.Loc_Args;
            alert.launch_image   = payload.Launch_Image;
            apnsMessage.alert    = alert;

            apnsMessage.badge            = payload.Badge;
            apnsMessage.sound            = payload.Sound;
            apnsMessage.contentAvailable = payload.Content_Available;
            apnsMessage.mutable_content  = payload.Mutable_Content;
            apnsMessage.category         = payload.Category;
            apnsMessage.thread_id        = payload.Thread_Id;
            return(apnsMessage);
        }
Exemplo n.º 3
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;
 }