/// <summary>
 /// Initializes a new instance of the <see cref="RegistrationDescription"/> class.
 /// </summary>
 /// <param name="registration">The registration.</param>
 public RegistrationDescription(RegistrationDescription registration)
 {
     this.NotificationHubPath = registration.NotificationHubPath;
     this.RegistrationId      = registration.RegistrationId;
     this.Tags = registration.Tags;
     this.ETag = registration.ETag;
     this.PropertyBagString = registration.PropertyBagString;
 }
        internal static void ValidateRegistration(RegistrationDescription registration)
        {
            var windowsTemplateRegistration = registration as WindowsTemplateRegistrationDescription;

            if (windowsTemplateRegistration != null)
            {
                windowsTemplateRegistration.SetWnsType();
            }
            else
            {
                var mpnsTemplateRegistration = registration as MpnsTemplateRegistrationDescription;
                if (mpnsTemplateRegistration != null)
                {
                    mpnsTemplateRegistration.SetMpnsType();
                }
            }

            // validate
            registration.Validate(ApiVersion.Four);
        }