Example #1
0
        internal static object InternalHeaderPromotionModeGetter(IPropertyBag bag)
        {
            TransportSettingFlags transportSettingFlags = (TransportSettingFlags)bag[ADAMTransportConfigContainerSchema.Flags];
            HeaderPromotionMode   headerPromotionMode   = (HeaderPromotionMode)((transportSettingFlags & TransportSettingFlags.HeaderPromotionModeSetting) >> 21);

            return(EnumValidator.IsValidValue <HeaderPromotionMode>(headerPromotionMode) ? headerPromotionMode : HeaderPromotionMode.NoCreate);
        }
        internal PropertyBagSaveFlags GetSaveFlags(bool isTopLevelMessage)
        {
            PropertyBagSaveFlags propertyBagSaveFlags = PropertyBagSaveFlags.Default;
            HeaderPromotionMode  headerPromotionMode  = isTopLevelMessage ? this.HeaderPromotion : HeaderPromotionMode.NoCreate;

            if (headerPromotionMode == HeaderPromotionMode.MayCreate)
            {
                propertyBagSaveFlags |= PropertyBagSaveFlags.IgnoreUnresolvedHeaders;
            }
            else if (headerPromotionMode == HeaderPromotionMode.NoCreate)
            {
                propertyBagSaveFlags |= (PropertyBagSaveFlags.IgnoreUnresolvedHeaders | PropertyBagSaveFlags.DisableNewXHeaderMapping);
            }
            return(propertyBagSaveFlags);
        }