Skip to content

Commit 116b860

Browse files
committed
Fixed parsing WindowsPhone message statuses.
Added "NotAvailable" enum fields to better match documentation, enum parsing changed to case insensitive (so it now correctly parses value "Inactive" to "InActive" field).
1 parent 14a0793 commit 116b860

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

PushSharp.WindowsPhone/WindowsPhoneMessageStatus.cs

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class WindowsPhoneMessageStatus
1919

2020
public enum WPNotificationStatus
2121
{
22+
NotAvailable,
2223
Received,
2324
Dropped,
2425
Suppressed,
@@ -27,6 +28,7 @@ public enum WPNotificationStatus
2728

2829
public enum WPDeviceConnectionStatus
2930
{
31+
NotAvailable,
3032
Connected,
3133
InActive,
3234
Disconnected,
@@ -35,6 +37,7 @@ public enum WPDeviceConnectionStatus
3537

3638
public enum WPSubscriptionStatus
3739
{
40+
NotAvailable,
3841
Active,
3942
Expired
4043
}

PushSharp.WindowsPhone/WindowsPhonePushChannel.cs

+9-9
Original file line numberDiff line numberDiff line change
@@ -125,25 +125,25 @@ WindowsPhoneMessageStatus ParseStatus(HttpWebResponse resp, WindowsPhoneNotifica
125125
result.Notification = notification;
126126
result.HttpStatus = resp.StatusCode;
127127

128-
var wpStatus = resp.Headers["X-NotificationStatus"];
129-
var wpChannelStatus = resp.Headers["X-SubscriptionStatus"];
130-
var wpDeviceConnectionStatus = resp.Headers["X-DeviceConnectionStatus"];
128+
var wpStatus = resp.Headers["X-NotificationStatus"];
129+
var wpChannelStatus = resp.Headers["X-SubscriptionStatus"];
130+
var wpDeviceConnectionStatus = resp.Headers["X-DeviceConnectionStatus"];
131131
var messageID = resp.Headers["X-MessageID"];
132132

133133
Guid msgGuid = Guid.NewGuid();
134134
if (Guid.TryParse(messageID, out msgGuid))
135135
result.MessageID = msgGuid;
136136

137-
WPDeviceConnectionStatus devConStatus = WPDeviceConnectionStatus.InActive;
138-
Enum.TryParse<WPDeviceConnectionStatus>(wpDeviceConnectionStatus, out devConStatus);
137+
WPDeviceConnectionStatus devConStatus = WPDeviceConnectionStatus.NotAvailable;
138+
Enum.TryParse<WPDeviceConnectionStatus>(wpDeviceConnectionStatus, true, out devConStatus);
139139
result.DeviceConnectionStatus = devConStatus;
140140

141-
WPNotificationStatus notStatus = WPNotificationStatus.Dropped;
142-
Enum.TryParse<WPNotificationStatus>(wpStatus, out notStatus);
141+
WPNotificationStatus notStatus = WPNotificationStatus.NotAvailable;
142+
Enum.TryParse<WPNotificationStatus>(wpStatus, true, out notStatus);
143143
result.NotificationStatus = notStatus;
144144

145-
WPSubscriptionStatus subStatus = WPSubscriptionStatus.Expired;
146-
Enum.TryParse<WPSubscriptionStatus>(wpChannelStatus, out subStatus);
145+
WPSubscriptionStatus subStatus = WPSubscriptionStatus.NotAvailable;
146+
Enum.TryParse<WPSubscriptionStatus>(wpChannelStatus, true, out subStatus);
147147
result.SubscriptionStatus = subStatus;
148148

149149
return result;

0 commit comments

Comments
 (0)