public iOSNotificationPayload(IDictionary _payloadDict)
        {
            iOSProperties = new iOSSpecificProperties();
            string      _userInfoKey = NPSettings.Notification.iOS.UserInfoKey;
            IDictionary _apsDict     = _payloadDict[kAPS] as IDictionary;

            // Read alert info from aps dictionary
            if (_apsDict.Contains(kAlert))
            {
                object _alertUnknownType = _apsDict[kAlert] as object;

                if (_alertUnknownType != null)
                {
                    // String format
                    if ((_alertUnknownType as string) != null)
                    {
                        AlertBody = _alertUnknownType as string;
                    }
                    // Dictionary format
                    else
                    {
                        IDictionary _alertDict   = _alertUnknownType as IDictionary;
                        string      _alertAction = _alertDict.GetIfAvailable <string>(kAction);
                        bool        _hasAction   = false;

                        if (_alertDict.Contains(kHasAction))
                        {
                            _hasAction = System.Convert.ToBoolean(_alertDict[kHasAction]);
                        }
                        else
                        {
                            _hasAction = (_alertAction != null);
                        }

                        // Set properties
                        AlertBody = _alertDict.GetIfAvailable <string>(kBody);
                        iOSProperties.AlertAction = _alertAction;
                        iOSProperties.HasAction   = _hasAction;
                        iOSProperties.LaunchImage = _alertDict.GetIfAvailable <string>(kLaunchImage);
                    }
                }
            }

            // Read sound, badge info from aps dictionary
            SoundName = _apsDict.GetIfAvailable <string>(kSound);
            iOSProperties.BadgeCount = _apsDict.GetIfAvailable <int>(kBadge);

            // Read user info from payload dictionary
            UserInfo = _payloadDict.GetIfAvailable <IDictionary>(_userInfoKey);

            // Read fire date, repeat interval from payload dictionary
            string _fireDateStr = _payloadDict.GetIfAvailable <string>(kFireDate);

            if (_fireDateStr != null)
            {
                FireDate = _fireDateStr.ToZuluFormatDateTimeLocal();
            }

            RepeatInterval = ConvertToRepeatInterval(_payloadDict.GetIfAvailable <CalendarUnit>(kRepeatIntervalKey));
        }
Exemple #2
0
        public static IDictionary CreateNotificationPayload(CrossPlatformNotification _notification)
        {
            IDictionary           _payloadDict   = new Dictionary <string, object>();
            IDictionary           _apsDict       = new Dictionary <string, object>();
            iOSSpecificProperties _iosProperties = _notification.iOSProperties;

            // Alert
            IDictionary _alertDict = new Dictionary <string, string>();

            _alertDict[kBody]        = _notification.AlertBody;
            _alertDict[kAction]      = _iosProperties.AlertAction;
            _alertDict[kLaunchImage] = _iosProperties.LaunchImage;
            _apsDict[kAlert]         = _alertDict;

            // User info, fire date
            string _keyForUserInfo = NPSettings.Notification.iOS.UserInfoKey;

            _apsDict[_keyForUserInfo] = _notification.UserInfo;
            _apsDict[kFireDate]       = _notification.FireDate.ToStringUsingZuluFormat();

            // Sound, badge
            _apsDict[kBadge] = _iosProperties.BadgeCount;
            _apsDict[kSound] = _iosProperties.SoundName;

            // Add aps dictionary to payload
            _payloadDict[kAPS] = _apsDict;

            return(_payloadDict);
        }
        public OneSignalNotificationPayload(string _message, Dictionary <string, object> _additionalData)
        {
            // Set properties
            this.AlertBody         = _message;
            this.iOSProperties     = new iOSSpecificProperties();
            this.AndroidProperties = new AndroidSpecificProperties();
            this.SoundName         = _additionalData.GetIfAvailable <string>(kSoundKey);


            // Extract other properties from data dictionary
            if (_additionalData == null)
            {
                return;
            }

            // iOS specific properties
            iOSSpecificProperties _iOSProperties = this.iOSProperties;

            _iOSProperties.HasAction = _additionalData.ContainsKey(kActionButtonsKey);

            // Android specific properties
            AndroidSpecificProperties _androidProperties = this.AndroidProperties;

            _androidProperties.ContentTitle = _additionalData.GetIfAvailable <string>(kTitleKey);

            // Get user info dictionary by removing used property keys
            IDictionary _userInfoDict = new Dictionary <string, object>(_additionalData);

            _userInfoDict.Remove(kTitleKey);

            this.UserInfo = _userInfoDict;
        }
        internal CrossPlatformNotification(IDictionary _jsonDict)
        {
            // Get alert body
            AlertBody = _jsonDict.GetIfAvailable <string>(kAlertBodyKey);

            // Get fire date, repeat interval
            string _fireDateStr = _jsonDict.GetIfAvailable <string>(kFireDateKey);

            if (!string.IsNullOrEmpty(_fireDateStr))
            {
                FireDate = _fireDateStr.ToZuluFormatDateTimeLocal();
            }

            RepeatInterval = _jsonDict.GetIfAvailable <eNotificationRepeatInterval>(kRepeatIntervalKey);

            // Get user info
            UserInfo = _jsonDict[kUserInfoKey] as IDictionary;

            // Get sound name
            SoundName = _jsonDict.GetIfAvailable <string>(kSoundNameKey);

            // Get iOS specific properties, if included
            if (_jsonDict.Contains(kiOSPropertiesKey))
            {
                iOSProperties = new iOSSpecificProperties(_jsonDict[kiOSPropertiesKey] as IDictionary);
            }

            // Get Android specific properties, if included
            if (_jsonDict.Contains(kAndroidPropertiesKey))
            {
                AndroidProperties = new AndroidSpecificProperties(_jsonDict[kAndroidPropertiesKey] as IDictionary);
            }
        }
Exemple #5
0
        public static IDictionary CreateNotificationPayload(CrossPlatformNotification _notification)
        {
            IDictionary           _payloadDict   = new Dictionary <string, object>();
            IDictionary           _apsDict       = new Dictionary <string, object>();
            iOSSpecificProperties _iosProperties = _notification.iOSProperties;
            string _keyForUserInfo = NPSettings.Notification.iOS.UserInfoKey;

            // Add alert info
            IDictionary _alertDict = new Dictionary <string, string>();

            _alertDict[kBody]        = _notification.AlertBody;
            _alertDict[kAction]      = _iosProperties.AlertAction;
            _alertDict[kLaunchImage] = _iosProperties.LaunchImage;

            // Add alert, badge, sound to "aps" dictionary
            _apsDict[kAlert] = _alertDict;
            _apsDict[kBadge] = _iosProperties.BadgeCount;
            _apsDict[kSound] = _iosProperties.SoundName;

            // Add aps, user info, fire date, repeat interval to "payload" dictionary
            _payloadDict[kAPS]               = _apsDict;
            _payloadDict[_keyForUserInfo]    = _notification.UserInfo;
            _payloadDict[kFireDate]          = _notification.FireDate.ToStringUsingZuluFormat();
            _payloadDict[kRepeatIntervalKey] = (int)ConvertToCalendarUnit(_notification.RepeatInterval);

            return(_payloadDict);
        }
		public iOSNotificationPayload (IDictionary _payloadDict)
		{
			IDictionary _apsDict			= _payloadDict[kAPS] as IDictionary;
			string 		_userInfoKey		= NPSettings.Notification.iOS.UserInfoKey;
			iOSProperties					= new iOSSpecificProperties();

			// Read alert info
			if (_apsDict.Contains(kAlert))
			{
				object 	_alertUnknownType	= _apsDict[kAlert] as object;
			
				if (_alertUnknownType != null)
				{
					// String format
					if ((_alertUnknownType as string) != null)
					{
						AlertBody						= _alertUnknownType as string;
					}
					// Dictionary format
					else
					{
						IDictionary _alertDict			= _alertUnknownType as IDictionary;
						AlertBody						= _alertDict.GetIfAvailable<string>(kBody);
						string 		_alertAction		= _alertDict.GetIfAvailable<string>(kAction);

						if (string.IsNullOrEmpty(_alertAction))
						{
							iOSProperties.AlertAction	= null;
							iOSProperties.HasAction		= false;
						}
						else
						{
							iOSProperties.AlertAction	= _alertAction;
							iOSProperties.HasAction		= true;
						}

						// Launch image
						iOSProperties.LaunchImage		= _alertDict.GetIfAvailable<string>(kLaunchImage);
					}
				}
			}

			// Read sound, badge info
			iOSProperties.SoundName		=  _apsDict.GetIfAvailable<string>(kSound);
			iOSProperties.BadgeCount	=  _apsDict.GetIfAvailable<int>(kBadge);

			// Read user info
			if (_apsDict.Contains(_userInfoKey))
				UserInfo				= _payloadDict[_userInfoKey] as IDictionary;
			
			// Read fire date, repeat interval
			string 	_fireDateStr		= _payloadDict.GetIfAvailable<string>(kFireDate);

			if (!string.IsNullOrEmpty(_fireDateStr))
				FireDate				= _fireDateStr.ToDateTimeLocalUsingZuluFormat();

			RepeatInterval				= ConvertToRepeatInterval(_payloadDict.GetIfAvailable<CalendarUnit>(kRepeatIntervalKey));
		}
		public iOSNotificationPayload (IDictionary _payloadDict)
		{
			iOSProperties					= new iOSSpecificProperties();
			string 		_userInfoKey		= NPSettings.Notification.iOS.UserInfoKey;
			IDictionary _apsDict			= _payloadDict[kAPS] as IDictionary;

			// Read alert info from aps dictionary
			if (_apsDict.Contains(kAlert))
			{
				object 	_alertUnknownType	= _apsDict[kAlert] as object;
			
				if (_alertUnknownType != null)
				{
					// String format
					if ((_alertUnknownType as string) != null)
					{
						AlertBody						= _alertUnknownType as string;
					}
					// Dictionary format
					else
					{
						IDictionary _alertDict			= _alertUnknownType as IDictionary;
						string		_alertAction		= _alertDict.GetIfAvailable<string>(kAction);
						bool		_hasAction			= false;

						if (_alertDict.Contains(kHasAction))
							_hasAction					= System.Convert.ToBoolean(_alertDict[kHasAction]);
						else
							_hasAction					= (_alertAction != null);

						// Set properties
						AlertBody						= _alertDict.GetIfAvailable<string>(kBody);
						iOSProperties.AlertAction		= _alertAction;
						iOSProperties.HasAction			= _hasAction;
						iOSProperties.LaunchImage		= _alertDict.GetIfAvailable<string>(kLaunchImage);
					}
				}
			}

			// Read sound, badge info from aps dictionary
			SoundName					=  _apsDict.GetIfAvailable<string>(kSound);
			iOSProperties.BadgeCount	=  _apsDict.GetIfAvailable<int>(kBadge);

			// Read user info from payload dictionary
			UserInfo					= _payloadDict.GetIfAvailable<IDictionary>(_userInfoKey);

			// Read fire date, repeat interval from payload dictionary
			string 	_fireDateStr		= _payloadDict.GetIfAvailable<string>(kFireDate);
			
			if (_fireDateStr != null)
				FireDate				= _fireDateStr.ToZuluFormatDateTimeLocal();
			
			RepeatInterval				= ConvertToRepeatInterval(_payloadDict.GetIfAvailable<CalendarUnit>(kRepeatIntervalKey));
		}
        internal CrossPlatformNotification(IDictionary _jsonDict)
        {
            // Get alert body
            AlertBody			= _jsonDict.GetIfAvailable<string>(kAlertBodyKey);

            // Get fire date
            string _fireDateStr	= _jsonDict.GetIfAvailable<string>(kFireDateKey);

            if (!string.IsNullOrEmpty(_fireDateStr))
                FireDate		= _fireDateStr.ToDateTimeLocalUsingZuluFormat();

            // Get user info
            UserInfo			= _jsonDict[kUserInfoKey] as IDictionary;

            // Get iOS specific properties, if included
            if (_jsonDict.Contains(kiOSPropertiesKey))
                iOSProperties		= new iOSSpecificProperties(_jsonDict[kiOSPropertiesKey] as IDictionary);

            // Get Android specific properties, if included
            if (_jsonDict.Contains(kAndroidPropertiesKey))
                AndroidProperties	= new AndroidSpecificProperties(_jsonDict[kAndroidPropertiesKey] as IDictionary);
        }
        public OneSignalNotificationPayload(OSNotificationPayload _payload)
        {
            // iOS specific properties
            iOSSpecificProperties _iOSProperties = new iOSSpecificProperties();

            _iOSProperties.HasAction = (_payload.actionButtons != null) && (_payload.actionButtons.Count > 0);

            // Android specific properties
            AndroidSpecificProperties _androidProperties = new AndroidSpecificProperties();

            _androidProperties.ContentTitle = _payload.title;

            // Get user info dictionary by removing used property keys
            IDictionary _userInfoDict = new Dictionary <string, object>(_payload.additionalData != null ? _payload.additionalData : new Dictionary <string, object>());

            _userInfoDict.Remove(kTitleKey);

            // Set properties
            this.AlertBody         = _payload.body;
            this.iOSProperties     = _iOSProperties;
            this.AndroidProperties = _androidProperties;
            this.SoundName         = _payload.sound;
            this.UserInfo          = _userInfoDict;
        }
Exemple #10
0
        public iOSNotificationPayload(IDictionary _payloadDict)
        {
            IDictionary _apsDict = _payloadDict[kAPS] as IDictionary;

            iOSProperties = new iOSSpecificProperties();

            // Alert
            if (_apsDict.Contains(kAlert))
            {
                object _alertUnknownType = _apsDict[kAlert] as object;

                if (_alertUnknownType != null)
                {
                    // String type
                    if ((_alertUnknownType as string) != null)
                    {
                        AlertBody = _alertUnknownType as string;
                    }
                    // Dictionary type
                    else
                    {
                        IDictionary _alertDict = _alertUnknownType as IDictionary;

                        // Set alert body
                        AlertBody = _alertDict.GetIfAvailable <string>(kBody);

                        // Set alert action
                        string _alertAction = _alertDict.GetIfAvailable <string>(kAction);

                        if (string.IsNullOrEmpty(_alertAction))
                        {
                            iOSProperties.AlertAction = null;
                            iOSProperties.HasAction   = false;
                        }
                        else
                        {
                            iOSProperties.AlertAction = _alertAction;
                            iOSProperties.HasAction   = true;
                        }

                        // Launch image
                        iOSProperties.LaunchImage = _alertDict.GetIfAvailable <string>(kLaunchImage);
                    }
                }
            }

            // Userinfo
            string _userInfoKey = NPSettings.Notification.iOS.UserInfoKey;

            if (_apsDict.Contains(_userInfoKey))
            {
                UserInfo = _apsDict[_userInfoKey] as IDictionary;
            }

            // Fire date
            string _fireDateStr = _apsDict.GetIfAvailable <string>(kFireDate);

            if (!string.IsNullOrEmpty(_fireDateStr))
            {
                FireDate = _fireDateStr.ToDateTimeLocalUsingZuluFormat();
            }

            // Sound, Badge
            iOSProperties.SoundName  = _apsDict.GetIfAvailable <string>(kSound);
            iOSProperties.BadgeCount = _apsDict.GetIfAvailable <int>(kBadge);
        }
Exemple #11
0
        public iOSNotificationPayload(IDictionary _payloadDict)
        {
            IDictionary _apsDict     = _payloadDict[kAPS] as IDictionary;
            string      _userInfoKey = NPSettings.Notification.iOS.UserInfoKey;

            iOSProperties = new iOSSpecificProperties();

            // Read alert info
            if (_apsDict.Contains(kAlert))
            {
                object _alertUnknownType = _apsDict[kAlert] as object;

                if (_alertUnknownType != null)
                {
                    // String format
                    if ((_alertUnknownType as string) != null)
                    {
                        AlertBody = _alertUnknownType as string;
                    }
                    // Dictionary format
                    else
                    {
                        IDictionary _alertDict = _alertUnknownType as IDictionary;
                        AlertBody = _alertDict.GetIfAvailable <string>(kBody);
                        string _alertAction = _alertDict.GetIfAvailable <string>(kAction);

                        if (string.IsNullOrEmpty(_alertAction))
                        {
                            iOSProperties.AlertAction = null;
                            iOSProperties.HasAction   = false;
                        }
                        else
                        {
                            iOSProperties.AlertAction = _alertAction;
                            iOSProperties.HasAction   = true;
                        }

                        // Launch image
                        iOSProperties.LaunchImage = _alertDict.GetIfAvailable <string>(kLaunchImage);
                    }
                }
            }

            // Read sound, badge info
            iOSProperties.SoundName  = _apsDict.GetIfAvailable <string>(kSound);
            iOSProperties.BadgeCount = _apsDict.GetIfAvailable <int>(kBadge);

            // Read user info
            if (_apsDict.Contains(_userInfoKey))
            {
                UserInfo = _payloadDict[_userInfoKey] as IDictionary;
            }

            // Read fire date, repeat interval
            string _fireDateStr = _payloadDict.GetIfAvailable <string>(kFireDate);

            if (!string.IsNullOrEmpty(_fireDateStr))
            {
                FireDate = _fireDateStr.ToDateTimeLocalUsingZuluFormat();
            }

            RepeatInterval = ConvertToRepeatInterval(_payloadDict.GetIfAvailable <CalendarUnit>(kRepeatIntervalKey));
        }
        public iOSNotificationPayload(IDictionary _payloadDict)
        {
            IDictionary _apsDict	= _payloadDict[kAPS] as IDictionary;
            iOSProperties			= new iOSSpecificProperties();

            // Alert
            if (_apsDict.Contains(kAlert))
            {
                object _alertUnknownType	= _apsDict[kAlert] as object;

                if (_alertUnknownType != null)
                {
                    // String type
                    if ((_alertUnknownType as string) != null)
                    {
                        AlertBody				= _alertUnknownType as string;
                    }
                    // Dictionary type
                    else
                    {
                        IDictionary _alertDict	= _alertUnknownType as IDictionary;

                        // Set alert body
                        AlertBody				= _alertDict.GetIfAvailable<string>(kBody);

                        // Set alert action
                        string _alertAction		= _alertDict.GetIfAvailable<string>(kAction);

                        if (string.IsNullOrEmpty(_alertAction))
                        {
                            iOSProperties.AlertAction	= null;
                            iOSProperties.HasAction		= false;
                        }
                        else
                        {
                            iOSProperties.AlertAction	= _alertAction;
                            iOSProperties.HasAction		= true;
                        }

                        // Launch image
                        iOSProperties.LaunchImage		= _alertDict.GetIfAvailable<string>(kLaunchImage);
                    }
                }
            }

            // Userinfo
            string _userInfoKey			= NPSettings.Notification.iOS.UserInfoKey;

            if (_apsDict.Contains(_userInfoKey))
                UserInfo	= _apsDict[_userInfoKey] as IDictionary;

            // Fire date
            string _fireDateStr			= _apsDict.GetIfAvailable<string>(kFireDate);

            if (!string.IsNullOrEmpty(_fireDateStr))
                FireDate	= _fireDateStr.ToDateTimeLocalUsingZuluFormat();

            // Sound, Badge
            iOSProperties.SoundName		=  _apsDict.GetIfAvailable<string>(kSound);
            iOSProperties.BadgeCount	=  _apsDict.GetIfAvailable<int>(kBadge);
        }