private dynamic GetNativeRegistration(DeviceRegistration registration) { switch (registration.Type) { case NotificationType.FCM: return(_hub.CreateFcmNativeRegistrationAsync(registration.Handle).Result); case NotificationType.WND: return(_hub.CreateWindowsNativeRegistrationAsync(registration.Handle).Result); default: return(_hub.CreateFcmNativeRegistrationAsync(registration.Handle).Result); } }
private static async Task CreateAndDeleteRegistrationAsync(NotificationHubClient nhClient) { var registrationId = await nhClient.CreateRegistrationIdAsync(); var registrationDescr = await nhClient.CreateFcmNativeRegistrationAsync(registrationId); Console.WriteLine($"Created FCM registration {registrationDescr.FcmRegistrationId}"); var allRegistrations = await nhClient.GetAllRegistrationsAsync(1000); foreach (var regFromServer in allRegistrations) { if (regFromServer.RegistrationId == registrationDescr.RegistrationId) { Console.WriteLine($"Found FCM registration {registrationDescr.FcmRegistrationId}"); break; } } //registrationDescr = await nhClient.GetRegistrationAsync<FcmRegistrationDescription>(registrationId); //Console.WriteLine($"Retrieved FCM registration {registrationDescr.FcmRegistrationId}"); await nhClient.DeleteRegistrationAsync(registrationDescr); Console.WriteLine($"Deleted FCM registration {registrationDescr.FcmRegistrationId}"); }
public async Task RetryPolicyRetriesOnTransientErrorInRegister(HttpStatusCode errorCode) { _mockHttp.Expect("https://sample.servicebus.windows.net/hub-name/registrations") .Respond(errorCode); var registrationXml = "<entry xmlns=\"http://www.w3.org/2005/Atom\" xmlns:a=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"><id>https://sample.servicebus.windows.net/hub-name/registrations/123456?api-version=2017-04</id><title type=\"text\">4757098718499783238-6462592605842469809-1</title><published>2019-05-13T17:12:18Z</published><updated>2019-05-13T17:12:18Z</updated><link rel=\"self\" href=\"https://sdk-sample-namespace.servicebus.windows.net/sdk-sample-nh/registrations/4757098718499783238-6462592605842469809-1?api-version=2017-04\"/><content type=\"application/xml\"><GcmRegistrationDescription xmlns=\"http://schemas.microsoft.com/netservices/2010/10/servicebus/connect\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><ETag>2</ETag><ExpirationTime>9999-12-31T23:59:59.999</ExpirationTime><RegistrationId>4757098718499783238-6462592605842469809-1</RegistrationId><Tags>tag2</Tags><GcmRegistrationId>amzn1.adm-registration.v2.123</GcmRegistrationId></GcmRegistrationDescription></content></entry>"; _mockHttp.Expect("https://sample.servicebus.windows.net/hub-name/registrations") .Respond("application/atom+xml", registrationXml); var registration = await _nhClient.CreateFcmNativeRegistrationAsync("123456"); _mockHttp.VerifyNoOutstandingExpectation(); }
public async Task Register(Registration registration) { if (registration.Handle == null) { throw new ArgumentNullException("Registration handle is null"); } try { var registrations = await Hub.GetRegistrationsByChannelAsync(registration.Handle, 0); foreach (var regDescription in registrations) { await Hub.DeleteRegistrationAsync(regDescription); } foreach (var key in registration.Keys) { await Unregister(key); } await RemoveOld(registration.Handle); RegistrationDescription reg = await Hub.CreateFcmNativeRegistrationAsync(registration.Handle, registration.Keys); lock (devicesLock) { Debug.WriteLine("registered " + registration.Keys); registeredDevices.Add(new UserDevice { Registration = registration, RegistrationID = reg.RegistrationId }); } } catch (Exception e) { Debug.WriteLine("REGISTER " + e.Message); throw e; } }