diff --git a/PushSharp.Windows/WnsConnection.cs b/PushSharp.Windows/WnsConnection.cs index 6ab72c43..77ce483d 100644 --- a/PushSharp.Windows/WnsConnection.cs +++ b/PushSharp.Windows/WnsConnection.cs @@ -64,7 +64,10 @@ public async Task Send (WnsNotification notification) http.DefaultRequestHeaders.TryAddWithoutValidation ("X-WNS-Type", string.Format ("wns/{0}", notification.Type.ToString().ToLower ())); - if(!http.DefaultRequestHeaders.Contains("Authorization")) //prevent double values + if (notification.Priority != WnsPriority.Unspecified) + http.DefaultRequestHeaders.TryAddWithoutValidation("X-WNS-PRIORITY", ((int)notification.Priority).ToString()); + + if (!http.DefaultRequestHeaders.Contains("Authorization")) //prevent double values http.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + accessToken); if (notification.RequestForStatus.HasValue) diff --git a/PushSharp.Windows/WnsNotification.cs b/PushSharp.Windows/WnsNotification.cs index a8a16dca..97afb2c7 100644 --- a/PushSharp.Windows/WnsNotification.cs +++ b/PushSharp.Windows/WnsNotification.cs @@ -14,6 +14,8 @@ public abstract class WnsNotification : INotification public abstract WnsNotificationType Type { get; } + public WnsPriority Priority { get; set; } + public bool IsDeviceRegistrationIdValid () { return true; diff --git a/PushSharp.Windows/WnsNotificationStatus.cs b/PushSharp.Windows/WnsNotificationStatus.cs index c32b62f3..d4970902 100644 --- a/PushSharp.Windows/WnsNotificationStatus.cs +++ b/PushSharp.Windows/WnsNotificationStatus.cs @@ -43,5 +43,14 @@ public enum WnsNotificationType Toast, Raw } + + public enum WnsPriority + { + Unspecified = 0, + High = 1, + Meduim = 2, + Low = 3, + VeryLow = 4 + } }