/// <summary> /// Determines whether notification ID registration successful or not /// </summary> /// <param name="registrationId">Registration ID</param> /// <param name="handle">Device application UUID</param> /// <param name ="appId"> iBeacon app ID</param> /// <param name="apiKey">iBeacon app key</param> /// <returns>(bool) True if registration successful</returns> public static bool IsRegistrationIdResponseValid(string registrationId, string handle, string appId, string apiKey) { var registrationRequestBody = new RegistrationIdRequest { Platform = "gcm", Handle = handle, Tags = new Tag { lang = "en", tenant = ActionManager.CurrentTenantCode } }; var data = Newtonsoft.Json.Linq.JObject.FromObject(registrationRequestBody).ToString(); var response = RestController.HttpRequestJsonByAppId( string.Format(UriCxm.NotificationsRegister, registrationId), Method.POST, data, appId, apiKey); if (response.StatusCode != HttpStatusCode.OK) { return(false); } try { var a = JsonConvert.DeserializeObject <RegistrationIdResponse>(response.Content); return(true); } catch { return(false); } }
public async Task SendPushNotification() { var pushTokens = await _databaseRepository.GetPushTokens(); var tokens = new List <string>(); foreach (var pushToken in pushTokens) { if (pushToken.Token.StartsWith(PushTokenConstants.PushGmcUrl)) { var splitTokenUrl = pushToken.Token.Split('/'); tokens.Add(splitTokenUrl[splitTokenUrl.Length - 1]); } } using (var client = new HttpClient()) { var registrationIdsRequest = new RegistrationIdRequest { RegistrationIds = tokens }; var jsonRequest = JsonConvert.SerializeObject(registrationIdsRequest); var apiKeyHeader = $"key={_configurationService.PushProviders.Firebase.ApiKey}"; var request = new HttpRequestMessage { RequestUri = new Uri(PushTokenConstants.PushGmcUrl), Method = HttpMethod.Post, Content = new StringContent(jsonRequest, Encoding.UTF8, "application/json"), }; request.Headers.TryAddWithoutValidation("Authorization", apiKeyHeader); var response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { var responseString = await response.Content.ReadAsStringAsync(); } } }