internal static void ValidateRegistration(RegistrationDescription registration) { string str; WindowsTemplateRegistrationDescription windowsTemplateRegistrationDescription = registration as WindowsTemplateRegistrationDescription; if (windowsTemplateRegistrationDescription == null) { MpnsTemplateRegistrationDescription mpnsTemplateRegistrationDescription = registration as MpnsTemplateRegistrationDescription; if (mpnsTemplateRegistrationDescription != null) { mpnsTemplateRegistrationDescription.SetMpnsType(); } } else { windowsTemplateRegistrationDescription.SetWnsType(); } RegistrationDescription registrationDescription = registration; if (registration.Tags == null || registration.Tags.Count == 0) { str = null; } else { str = string.Join(",", registration.Tags); } registrationDescription.TagsString = str; registration.Validate(true, ApiVersion.Four, true); }
public MpnsTemplateRegistrationDescription(MpnsTemplateRegistrationDescription sourceRegistration) : base(sourceRegistration) { this.MpnsHeaders = new MpnsHeaderCollection(); if (sourceRegistration.MpnsHeaders != null) { foreach (KeyValuePair <string, string> mpnsHeader in sourceRegistration.MpnsHeaders) { this.MpnsHeaders.Add(mpnsHeader.Key, mpnsHeader.Value); } } this.BodyTemplate = sourceRegistration.BodyTemplate; this.TemplateName = sourceRegistration.TemplateName; }
private static void SetMpnsType(this MpnsTemplateRegistrationDescription registration) { if (registration == null || registration.IsJsonObjectPayLoad()) { return; } if (registration.MpnsHeaders != null && registration.MpnsHeaders.ContainsKey("X-NotificationClass")) { int num = int.Parse(registration.MpnsHeaders["X-NotificationClass"], CultureInfo.InvariantCulture); if (num >= 3 && num <= 10 || num >= 13 && num <= 20 || num >= 23 && num <= 31) { return; } } if (registration.IsXmlPayLoad()) { if (registration.MpnsHeaders == null) { registration.MpnsHeaders = new MpnsHeaderCollection(); } switch (RegistrationSDKHelper.DetectMpnsTemplateRegistationType(registration.BodyTemplate, SRClient.NotSupportedXMLFormatAsBodyTemplateForMpns)) { case MpnsTemplateBodyType.Toast: { RegistrationSDKHelper.AddOrUpdateHeader(registration.MpnsHeaders, "X-WindowsPhone-Target", "toast"); RegistrationSDKHelper.AddOrUpdateHeader(registration.MpnsHeaders, "X-NotificationClass", "2"); break; } case MpnsTemplateBodyType.Tile: { RegistrationSDKHelper.AddOrUpdateHeader(registration.MpnsHeaders, "X-WindowsPhone-Target", "token"); RegistrationSDKHelper.AddOrUpdateHeader(registration.MpnsHeaders, "X-NotificationClass", "1"); return; } default: { return; } } } }