in src/Microsoft.Azure.NotificationHubs/RegistrationSDKHelper.cs [86:134]
private static void SetWnsType(this WindowsTemplateRegistrationDescription registration)
{
if (registration == null || registration.IsJsonObjectPayLoad())
{
return;
}
if (registration.IsXmlPayLoad())
{
if (registration.WnsHeaders == null)
{
registration.WnsHeaders = new WnsHeaderCollection();
}
if (registration.WnsHeaders.ContainsKey(WindowsRegistrationDescription.Type) &&
registration.WnsHeaders[WindowsRegistrationDescription.Type].Equals(WindowsRegistrationDescription.Raw, StringComparison.OrdinalIgnoreCase))
{
try
{
XmlDocument xmlPayload = new XmlDocument();
using (var reader = XmlTextReader.Create(new StringReader(registration.BodyTemplate)))
{
xmlPayload.Load(reader);
}
}
catch (XmlException)
{
throw new ArgumentException(SRClient.NotSupportedXMLFormatAsBodyTemplate);
}
}
else
{
switch (DetectWindowsTemplateRegistationType(registration.BodyTemplate, SRClient.NotSupportedXMLFormatAsBodyTemplate))
{
case WindowsTemplateBodyType.Toast:
AddOrUpdateHeader(registration.WnsHeaders, WindowsRegistrationDescription.Type, WindowsRegistrationDescription.Toast);
break;
case WindowsTemplateBodyType.Tile:
AddOrUpdateHeader(registration.WnsHeaders, WindowsRegistrationDescription.Type, WindowsRegistrationDescription.Tile);
break;
case WindowsTemplateBodyType.Badge:
AddOrUpdateHeader(registration.WnsHeaders, WindowsRegistrationDescription.Type, WindowsRegistrationDescription.Badge);
break;
default:
break;
}
}
}
}