private async Task CreateRegistrationAsync(PushSubscriptionRequest deviceUpdate) { var registration = PushRegistrationsFactory.CreateTemplateRegistration(deviceUpdate); try { await _hub.CreateRegistrationAsync(registration); } catch (MessagingException e) { throw new PushNotificationException("Error while trying to create device token registration in notification hub", e); } }
/// <summary> /// Registers a user in Azure Notifications Hub. /// </summary> /// <remarks> /// Check <see cref="IsRegisteredAsync(Guid)"/> first to avoid duplicate /// registrations. /// </remarks> /// <param name="internalRegistration">Our internal registration object.</param> public async Task <NotificationRegistration> RegisterAsync(NotificationRegistration internalRegistration) { if (internalRegistration is null) { throw new ArgumentNullException(nameof(internalRegistration)); } // Create new registration and return the converted result var externalRegistration = await _hubClient.CreateRegistrationAsync(ExtractForCreation(internalRegistration)); return(new NotificationRegistration { ExternalId = externalRegistration.RegistrationId, Handle = internalRegistration.Handle, Id = internalRegistration.Id, PushNotificationPlatform = internalRegistration.PushNotificationPlatform, }); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); var handle = data.handle.Value; var connectionString = Environment.GetEnvironmentVariable("NotificationHubConnectionString", EnvironmentVariableTarget.Process); var hub = new NotificationHubClient(connectionString, "rfc-activity"); CollectionQueryResult <RegistrationDescription> registrationForHandle = await hub.GetRegistrationsByChannelAsync(handle, 100); var enumerator = registrationForHandle.GetEnumerator(); if (!enumerator.MoveNext()) { var registration = new FcmRegistrationDescription(handle); await hub.CreateRegistrationAsync(registration); } return(new OkResult()); }
public string Registration(DeviceRegistration registration) { return(_hub.CreateRegistrationAsync(GetNativeRegistration(registration)).Result); }
public async Task CreateRegistrationAsync_PassValidAdmNativeRegistration_GetCreatedRegistrationBack() { LoadMockData(); await DeleteAllRegistrationsAndInstallations(); var registration = new AdmRegistrationDescription(_configuration["AdmDeviceToken"]); registration.PushVariables = new Dictionary <string, string>() { { "var1", "value1" } }; registration.Tags = new HashSet <string>() { "tag1" }; var createdRegistration = await _hubClient.CreateRegistrationAsync(registration); Assert.NotNull(createdRegistration.RegistrationId); Assert.NotNull(createdRegistration.ETag); Assert.NotNull(createdRegistration.ExpirationTime); Assert.Contains(new KeyValuePair <string, string>("var1", "value1"), createdRegistration.PushVariables); Assert.Contains("tag1", createdRegistration.Tags); Assert.Equal(registration.AdmRegistrationId, createdRegistration.AdmRegistrationId); RecordTestResults(); }