处理同一设备的azure通知中心中的重复条目

Sac*_*edi 5 c# duplicates asp.net-web-api azure-notificationhub

我在我的应用程序中使用Windows azure通知集线器向用户提供通知.以下是在通知中心上注册设备的API代码.

var platform = registrationCall["platform"].ToString();
var installationId = registrationCall["instId"].ToString();
var channelUri = registrationCall["channelUri"] != null ?
    registrationCall["channelUri"].ToString() : null;
var deviceToken = registrationCall["deviceToken"] != null ?
    registrationCall["deviceToken"].ToString() : null;
string RegistrationID = registrationCall["RegistrationID"] != null ?
    registrationCall["RegistrationID"].ToString() : null;

var userName = HttpContext.Current.User.Identity.Name;

RegistrationDescription registration = null;
AppleRegistrationDescription iosExistingRegistrationByDeviceToken = null;
string UserID = User.Identity.GetUserId().ToString();

var registrationFromHub = await hubClient.GetRegistrationsByChannelAsync(deviceToken, 100);
if (registrationFromHub.Count() >= 1)
{
    iosExistingRegistrationByDeviceToken =
        registrationFromHub.Where(x => x.RegistrationId == RegistrationID)
                           .SingleOrDefault() as AppleRegistrationDescription;
}

if (iosExistingRegistrationByDeviceToken != null)
{
    iosExistingRegistrationByDeviceToken.Tags = new HashSet<string>() { updated tag list };
    registration =
        await hubClient.UpdateRegistrationAsync(iosExistingRegistrationByDeviceToken);
}
else
{
    registration = await hubClient.CreateAppleNativeRegistrationAsync(deviceToken,tags);
}
Run Code Online (Sandbox Code Playgroud)

我的设备将信息传递给此api方法.我正在调用此方法来创建新注册以及更新现有注册.但它似乎没有正常工作.

下面的屏幕截图显示了具有相同PNS(设备令牌)的重复条目.有谁请帮助我如何避免这些重复的条目.我想要的是,如果通知中心已经包含设备令牌(PNS),那么它应该只是上传标签而不是创建新的注册.

在此输入图像描述