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);
        }
Ejemplo n.º 2
0
 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;
                }
                }
            }
        }