public virtual async Task <IActionResult> SendNotification(PushNotificationModel model) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageCustomers)) { return(AccessDeniedView()); } IPagedList <Customer> notificationCustomers = await _customerService.GetAllPushNotificationCustomersAsync(sendToAll : true); foreach (var customer in notificationCustomers) { if (!string.IsNullOrEmpty(customer.PushToken)) { var expoSDKClient = new PushApiClient(); var pushTicketReq = new PushTicketRequest() { PushTo = new List <string>() { customer.PushToken }, PushTitle = model.MessageTitle, PushBody = model.MessageBody }; var result = await expoSDKClient.PushSendAsync(pushTicketReq); } } //prepare model model = new PushNotificationModel(); //if we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> CancelOrder(int id) { var order = await _orderService.GetOrderByIdAsync(id); if (order == null) { return(Ok(new { success = false, message = await _localizationService.GetResourceAsync("Order.Cancelled.Failed") })); } //try to get an customer with the order id var customer = await _customerService.GetCustomerByIdAsync(order.CustomerId); if (customer == null) { return(Ok(new { success = false, message = await _localizationService.GetResourceAsync("customer.NotFound") })); } await _orderProcessingService.CancelOrderAsync(order, true); await LogEditOrderAsync(order.Id); if (customer.OrderStatusNotification) { var expoSDKClient = new PushApiClient(); var pushTicketReq = new PushTicketRequest() { PushTo = new List <string>() { customer.PushToken }, PushTitle = await _localizationService.GetResourceAsync("PushNotification.OrderCancelTitle"), PushBody = await _localizationService.GetResourceAsync("PushNotification.OrderCancelBody") }; var result = await expoSDKClient.PushSendAsync(pushTicketReq); } return(Ok(new { success = true, message = await _localizationService.GetResourceAsync("Order.Cancelled.Successfully") })); }
private static void SendPush(string expoPushToken, string innerText) { var expoSDKClient = new PushApiClient(); var pushTicketReq = new PushTicketRequest() { PushTo = new List <string>() { expoPushToken }, //PushBadgeCount = 7, PushTitle = "Playable map detected", PushBody = "cs_italy: " + innerText }; var result = expoSDKClient.PushSendAsync(pushTicketReq).GetAwaiter().GetResult(); if (result?.PushTicketErrors?.Count() > 0) { foreach (var error in result.PushTicketErrors) { Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}"); } } }
static void Main(string[] args) { //instanciamos la clase que contiene los metodos para enviar la notificación var expoSDKClient = new PushApiClient(); //instanciamos el modelo que contendra la información var pushTicketReq = new PushTicketRequest() { PushTo = new List <string> { "{YOU_EXPO_TOKEN}" }, PushBadgeCount = 7, PushBody = "HI I AM A GREAT DEVELOPER!", }; /* * -creamos una variable con el resultado para luego verificar si ocurrió algún error * -llamamos al metodo PushSendAsync le pasamos el modelo PushTicketRequest el cual devuelve * un taskAwaiter por eso el metodo .GetAwaited() y luego llamamos getResult() * (ESTO ES UN METODO ASYNCRONO) * */ var result = expoSDKClient.PushSendAsync(pushTicketReq).GetAwaiter().GetResult(); //verificamos si hay errores if (result?.PushTicketErrors?.Count > 0) { foreach (var error in result.PushTicketErrors) { Console.WriteLine($"Error: {error.ErrorCode} - {error.ErrorMessage}"); } } Console.WriteLine("Hello World!"); Console.ReadKey(); }
public async Task <PushTicketResponse> PushSendAsync(PushTicketRequest pushTicketRequest) { var ticketResponse = await PostAsync <PushTicketRequest, PushTicketResponse>(pushTicketRequest, _pushSendPath); return(ticketResponse); }