|
6 | 6 | using System.Threading; |
7 | 7 | using System.Globalization; |
8 | 8 | using System.Threading.Tasks; |
| 9 | +using System.Collections.Generic; |
9 | 10 | using System.Security.Cryptography; |
10 | 11 | using Org.BouncyCastle.Crypto; |
11 | 12 | using Org.BouncyCastle.Crypto.Parameters; |
@@ -41,6 +42,12 @@ public class PushServiceClient |
41 | 42 | private const int CONTENT_RECORD_SIZE = 4096; |
42 | 43 |
|
43 | 44 | private static readonly byte[] _keyingMaterialInfoParameterPrefix = Encoding.ASCII.GetBytes(KEYING_MATERIAL_INFO_PARAMETER_PREFIX); |
| 45 | + private static readonly Dictionary<PushMessageUrgency, string> _urgencyHeaderValues = new Dictionary<PushMessageUrgency, string> |
| 46 | + { |
| 47 | + { PushMessageUrgency.VeryLow, "very-low" }, |
| 48 | + { PushMessageUrgency.Low, "low" }, |
| 49 | + { PushMessageUrgency.High, "high" } |
| 50 | + }; |
44 | 51 |
|
45 | 52 | private int _defaultTimeToLive = DEFAULT_TIME_TO_LIVE; |
46 | 53 |
|
@@ -199,6 +206,24 @@ private static HttpRequestMessage SetAuthentication(HttpRequestMessage pushMessa |
199 | 206 | return pushMessageDeliveryRequest; |
200 | 207 | } |
201 | 208 |
|
| 209 | + private static HttpRequestMessage SetUrgency(HttpRequestMessage pushMessageDeliveryRequest, PushMessage message) |
| 210 | + { |
| 211 | + switch (message.Urgency) |
| 212 | + { |
| 213 | + case PushMessageUrgency.Normal: |
| 214 | + break; |
| 215 | + case PushMessageUrgency.VeryLow: |
| 216 | + case PushMessageUrgency.Low: |
| 217 | + case PushMessageUrgency.High: |
| 218 | + pushMessageDeliveryRequest.Headers.Add(URGENCY_HEADER_NAME, _urgencyHeaderValues[message.Urgency]); |
| 219 | + break; |
| 220 | + default: |
| 221 | + throw new NotSupportedException($"Not supported value has been provided for {nameof(PushMessageUrgency)}."); |
| 222 | + } |
| 223 | + |
| 224 | + return pushMessageDeliveryRequest; |
| 225 | + } |
| 226 | + |
202 | 227 | private static HttpRequestMessage SetTopic(HttpRequestMessage pushMessageDeliveryRequest, PushMessage message) |
203 | 228 | { |
204 | 229 | if (!String.IsNullOrWhiteSpace(message.Topic)) |
|
0 commit comments