WindowsPhoneMessageStatus ParseStatus(HttpWebResponse resp, WindowsPhoneNotification notification) { var result = new WindowsPhoneMessageStatus(); result.Notification = notification; result.HttpStatus = HttpStatusCode.ServiceUnavailable; var wpStatus = string.Empty; var wpChannelStatus = string.Empty; var wpDeviceConnectionStatus = string.Empty; var messageID = string.Empty; if (resp != null) { result.HttpStatus = resp.StatusCode; wpStatus = resp.Headers["X-NotificationStatus"]; wpChannelStatus = resp.Headers["X-SubscriptionStatus"]; wpDeviceConnectionStatus = resp.Headers["X-DeviceConnectionStatus"]; messageID = resp.Headers["X-MessageID"]; } Guid msgGuid = Guid.NewGuid(); if (Guid.TryParse(messageID, out msgGuid)) { result.MessageID = msgGuid; } WPDeviceConnectionStatus devConStatus = WPDeviceConnectionStatus.NotAvailable; Enum.TryParse <WPDeviceConnectionStatus>(wpDeviceConnectionStatus, true, out devConStatus); result.DeviceConnectionStatus = devConStatus; WPNotificationStatus notStatus = WPNotificationStatus.NotAvailable; Enum.TryParse <WPNotificationStatus>(wpStatus, true, out notStatus); result.NotificationStatus = notStatus; WPSubscriptionStatus subStatus = WPSubscriptionStatus.NotAvailable; Enum.TryParse <WPSubscriptionStatus>(wpChannelStatus, true, out subStatus); result.SubscriptionStatus = subStatus; return(result); }
WindowsPhoneMessageStatus ParseStatus(HttpWebResponse resp, WindowsPhoneNotification notification) { var result = new WindowsPhoneMessageStatus(); 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 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); result.DeviceConnectionStatus = devConStatus; WPNotificationStatus notStatus = WPNotificationStatus.Dropped; Enum.TryParse <WPNotificationStatus>(wpStatus, out notStatus); result.NotificationStatus = notStatus; WPSubscriptionStatus subStatus = WPSubscriptionStatus.Expired; Enum.TryParse <WPSubscriptionStatus>(wpChannelStatus, out subStatus); result.SubscriptionStatus = subStatus; return(result); }