BuildIt.Bot.Client.Services.BotClientMobileAppClient.RegisterPushAsync C# (CSharp) Method

RegisterPushAsync() public method

Method which, by making a call to the service, registers your device to push notifications hub.
public RegisterPushAsync ( PushRegistration pushRegistration ) : Task
pushRegistration BuildIt.Web.Models.PushNotifications.PushRegistration
return Task
        public async Task<BuildIt.Web.Models.Results.HubRegistrationResult> RegisterPushAsync(PushRegistration pushRegistration)
        {
            if (endpointRouteDetails?.BaseServiceUrl == null) return null;

            BuildIt.Web.Models.Results.HubRegistrationResult hubRegistrationResult = null;
            try
            {
                var json = JsonConvert.SerializeObject(pushRegistration);
                using (var client = new HttpClient())
                {
                    var request = new HttpRequestMessage(HttpMethod.Post, $"{endpointRouteDetails.BaseServiceUrl}/{endpointRouteDetails.ServiceAffix}/{endpointRouteDetails.RegisterPushRoute}");
                    request.Content = new StringContent(json);
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue(Constants.JsonMimeType);
                    if (IsMobileService) request.Content.Headers.Add("ZUMO-API-VERSION", "2.0.0");
                    var response = await client.SendAsync(request);
                    if (response.IsSuccessStatusCode)
                    {
                        var contentJson = await response.Content.ReadAsStringAsync();
                        hubRegistrationResult = JsonConvert.DeserializeObject<BuildIt.Web.Models.Results.HubRegistrationResult>(contentJson);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            return hubRegistrationResult;
        }

Usage Example

 private async Task RegisterForPushNotification(string deviceToken)
 {
     try
     {
         var registration = new PushRegistration()
         {
             Handle = deviceToken,
             RegistrationId = RetrieveCurrentRegistrationId?.Invoke(),
             Platform = PushPlatform.WNS
         };
         var botClientMobileAppClient = new BotClientMobileAppClient(endpointRouteDetails);
         var hubRegistrationResult = await botClientMobileAppClient.RegisterPushAsync(registration);
         if (hubRegistrationResult != null)
         {
             RegistrationSuccessful?.Invoke(hubRegistrationResult.RegistrationId);
         }
         else
         {
             RegistrationFailure?.Invoke(new Exception("Registration Failure"));
         }
     }
     catch (Exception ex)
     {
         RegistrationFailure?.Invoke(ex);
         Debug.WriteLine(ex.Message);
     }
 }