Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        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();
                }
            }
        }