Skip to content

Commit

Permalink
Fixed parsing WindowsPhone message statuses.
Browse files Browse the repository at this point in the history
Added "NotAvailable" enum fields to better match documentation, enum
parsing changed to case insensitive (so it now correctly parses value
"Inactive" to "InActive" field).
  • Loading branch information
t-telepko committed Feb 14, 2013
1 parent 14a0793 commit 116b860
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
3 changes: 3 additions & 0 deletions PushSharp.WindowsPhone/WindowsPhoneMessageStatus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class WindowsPhoneMessageStatus

public enum WPNotificationStatus
{
NotAvailable,
Received,
Dropped,
Suppressed,
Expand All @@ -27,6 +28,7 @@ public enum WPNotificationStatus

public enum WPDeviceConnectionStatus
{
NotAvailable,
Connected,
InActive,
Disconnected,
Expand All @@ -35,6 +37,7 @@ public enum WPDeviceConnectionStatus

public enum WPSubscriptionStatus
{
NotAvailable,
Active,
Expired
}
Expand Down
18 changes: 9 additions & 9 deletions PushSharp.WindowsPhone/WindowsPhonePushChannel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,25 +125,25 @@ WindowsPhoneMessageStatus ParseStatus(HttpWebResponse resp, WindowsPhoneNotifica
result.Notification = notification;
result.HttpStatus = resp.StatusCode;

var wpStatus = resp.Headers["X-NotificationStatus"];
var wpChannelStatus = resp.Headers["X-SubscriptionStatus"];
var wpDeviceConnectionStatus = resp.Headers["X-DeviceConnectionStatus"];
var wpStatus = resp.Headers["X-NotificationStatus"];
var wpChannelStatus = resp.Headers["X-SubscriptionStatus"];
var wpDeviceConnectionStatus = resp.Headers["X-DeviceConnectionStatus"];
var messageID = resp.Headers["X-MessageID"];

Guid msgGuid = Guid.NewGuid();
if (Guid.TryParse(messageID, out msgGuid))
result.MessageID = msgGuid;

WPDeviceConnectionStatus devConStatus = WPDeviceConnectionStatus.InActive;
Enum.TryParse<WPDeviceConnectionStatus>(wpDeviceConnectionStatus, out devConStatus);
WPDeviceConnectionStatus devConStatus = WPDeviceConnectionStatus.NotAvailable;
Enum.TryParse<WPDeviceConnectionStatus>(wpDeviceConnectionStatus, true, out devConStatus);
result.DeviceConnectionStatus = devConStatus;

WPNotificationStatus notStatus = WPNotificationStatus.Dropped;
Enum.TryParse<WPNotificationStatus>(wpStatus, out notStatus);
WPNotificationStatus notStatus = WPNotificationStatus.NotAvailable;
Enum.TryParse<WPNotificationStatus>(wpStatus, true, out notStatus);
result.NotificationStatus = notStatus;

WPSubscriptionStatus subStatus = WPSubscriptionStatus.Expired;
Enum.TryParse<WPSubscriptionStatus>(wpChannelStatus, out subStatus);
WPSubscriptionStatus subStatus = WPSubscriptionStatus.NotAvailable;
Enum.TryParse<WPSubscriptionStatus>(wpChannelStatus, true, out subStatus);
result.SubscriptionStatus = subStatus;

return result;
Expand Down

0 comments on commit 116b860

Please sign in to comment.