/// <summary> /// Send a raw notification message to the client. /// </summary> /// <param name="clientURI">Client Uri.</param> /// <param name="rawData">The data to send.</param> /// <returns>The message send operation result.</returns> private static void SendRawMessage(Uri clientURI, byte[] rawData) { RawPushNotificationMessage message = new RawPushNotificationMessage(MessageSendPriority.High); message.RawData = rawData; message.SendAsync(clientURI); }
/// <summary> /// Send a raw notification message to the client. /// </summary> /// <param name="clientURI">Client Uri.</param> /// <param name="rawData">The data to send.</param> /// <returns>The message send operation result for the last message sent .</returns> private static MessageSendResult SendMessage(Uri clientURI, byte[] rawData) { // Send a raw message // // For more information on the WindowsPhone.Recipes.Push.Messages namespace, // and the the push notification implementation please refer this link: // http://msdn.microsoft.com/en-us/WP7TrainingCourse_UsingPushNotificationsLab // RawPushNotificationMessage message = new RawPushNotificationMessage(MessageSendPriority.High); message.RawData = rawData; MessageSendResult result = message.Send(clientURI); return(result); }
public ActionResult SendRawNotification(MpnsRawViewModel vm) { if (string.IsNullOrEmpty(vm.Text)) { object error = new { Status = "Error sending notification: Field Text cannot be empty" }; return(this.Json(error)); } if (!this.EndpointExists(vm.ApplicationId, vm.TileId, vm.ClientId, vm.ChannelUrl)) { object error = new { Status = "Error sending notification: Endpoint does not exist" }; return(this.Json(error)); } try { var notification = new RawPushNotificationMessage { RawData = Encoding.UTF8.GetBytes(vm.Text), SendPriority = vm.Priority }; var result = notification.Send(new Uri(vm.ChannelUrl)); object response = new { SubscriptionStatus = result.SubscriptionStatus.ToString(), DeviceConnectionStatus = result.DeviceConnectionStatus.ToString(), NotificationStatus = result.NotificationStatus.ToString(), Status = result.LookupDeliveryStatus() }; return(this.Json(response)); } catch (ArgumentOutOfRangeException exception) { object error = new { Status = exception.Message }; return(this.Json(error)); } catch (InvalidOperationException exception) { object error = new { Status = exception.Message }; return(this.Json(error)); } }
/// <summary> /// Send raw message to all subscribers. In case that the phone-application /// is not running, send tile update and increase tile counter. /// </summary> protected override void OnSend() { // Notify phone for having waiting messages. var rawMsg = new RawPushNotificationMessage(MessageSendPriority.High) { RawData = Encoding.ASCII.GetBytes(RawMessage) }; foreach (var subscriber in PushService.Subscribers) { rawMsg.SendAsync( subscriber.ChannelUri, result => { Log(result); OnRawSent(subscriber.UserName, result); }, Log); } }
public ActionResult SendMicrosoftRaw(string userId, string message) { if (string.IsNullOrWhiteSpace(message)) { return(this.Json("The notification message cannot be null, empty nor white space.", JsonRequestBehavior.AllowGet)); } var resultList = new List <MessageSendResultLight>(); var uris = this.pushUserEndpointsRepository.GetPushUsersByName(userId).Select(u => u.ChannelUri); var raw = new RawPushNotificationMessage { SendPriority = MessageSendPriority.High, RawData = Encoding.UTF8.GetBytes(message) }; foreach (var uri in uris) { resultList.Add(raw.SendAndHandleErrors(new Uri(uri))); } return(this.Json(resultList, JsonRequestBehavior.AllowGet)); }