Exemple #1
0
        private static Mock <IPublishedContent> MockPublishedContent(int id,
                                                                     PersonalisationGroupDefinitionMatch match,
                                                                     PersonalisationGroupDefinitionDuration duration,
                                                                     IEnumerable <PersonalisationGroupDefinitionDetail> definitionDetails,
                                                                     int score = 0)
        {
            var definitionPropertyMock = new Mock <IPublishedProperty>();

            definitionPropertyMock.Setup(c => c.PropertyTypeAlias).Returns("definition");
            definitionPropertyMock.Setup(c => c.Value).Returns(new PersonalisationGroupDefinition
            {
                Match    = match,
                Duration = duration,
                Details  = definitionDetails,
                Score    = score
            });

            var contentMock = new Mock <IPublishedContent>();

            contentMock.Setup(c => c.Id).Returns(id);
            contentMock.Setup(c => c.Name).Returns("Group " + id);
            contentMock.Setup(c => c.GetProperty(It.Is <string>(x => x == "definition"), It.IsAny <bool>())).Returns(definitionPropertyMock.Object);

            return(contentMock);
        }
        /// <summary>
        /// Retrieves the cookie key to use for the matched groups
        /// </summary>
        /// <param name="duration"></param>
        /// <returns>Cookie key to use</returns>
        private static string GetCookieKeyForMatchedGroups(PersonalisationGroupDefinitionDuration duration)
        {
            string defaultKey, appSettingKey;

            switch (duration)
            {
            case PersonalisationGroupDefinitionDuration.Session:
                defaultKey    = "sessionMatchedGroups";
                appSettingKey = AppConstants.ConfigKeys.CookieKeyForSessionMatchedGroups;
                break;

            case PersonalisationGroupDefinitionDuration.Visitor:
                defaultKey    = "persistentMatchedGroups";
                appSettingKey = AppConstants.ConfigKeys.CookieKeyForPersistentMatchedGroups;
                break;

            default:
                throw new InvalidOperationException("Only session and visitor personalisation groups can be tracked.");
            }

            // First check if key defined in config
            var cookieKey = ConfigurationManager.AppSettings[appSettingKey];

            if (string.IsNullOrEmpty(cookieKey))
            {
                // If not, use the convention key
                cookieKey = defaultKey;
            }

            return(cookieKey);
        }
        /// <summary>
        /// Retrieves the cookie key to use for the matched groups
        /// </summary>
        /// <param name="duration">Match group duration</param>
        /// <returns>Cookie key to use</returns>
        private string GetCookieKeyForMatchedGroups(PersonalisationGroupDefinitionDuration duration)
        {
            switch (duration)
            {
            case PersonalisationGroupDefinitionDuration.Session:
                return(_config.CookieKeyForSessionMatchedGroups);

            case PersonalisationGroupDefinitionDuration.Visitor:
                return(_config.CookieKeyForPersistentMatchedGroups);

            default:
                throw new InvalidOperationException("Only session and visitor personalisation groups can be tracked.");
            }
        }