private async Task<UserRegistrationResult> RegisterUserAsync(PushRegistration pushRegistration)
{
UserRegistrationResult userRegistrationResult = null;
if (notificationHub == null) return null;
string newRegistrationId = null;
if (pushRegistration.Handle != null)
{
var registrations = await notificationHub.GetRegistrationsByChannelAsync(pushRegistration.Handle, 100);
foreach (RegistrationDescription registration in registrations)
{
if (newRegistrationId == null)
{
newRegistrationId = registration.RegistrationId;
}
else
{
await notificationHub.DeleteRegistrationAsync(registration);
}
}
}
if (newRegistrationId == null)
{
var registrationId = await notificationHub.CreateRegistrationIdAsync();
userRegistrationResult = new UserRegistrationResult() { RegistrationId = registrationId };
}
else
{
userRegistrationResult = new UserRegistrationResult() { RegistrationId = newRegistrationId };
}
return userRegistrationResult;
}
}