コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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();
        }
コード例 #4
0
ファイル: NotificationManager.cs プロジェクト: DaniilPros/jxb
        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;
            }
        }