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); }
internal static bool MatchGroupsByName(string[] groupNames, IList <IPublishedContent> groups, PersonalisationGroupDefinitionMatch matchType) { // Package is disabled, return default if (UmbracoConfig.For.PersonalisationGroups().DisablePackage) { return(true); } var matches = 0; foreach (var groupName in groupNames) { var group = groups .FirstOrDefault(x => string.Equals(x.Name, groupName, StringComparison.InvariantCultureIgnoreCase)); if (group != null) { if (MatchGroup(group)) { if (matchType == PersonalisationGroupDefinitionMatch.Any) { return(true); } else { matches++; } } else { if (matchType == PersonalisationGroupDefinitionMatch.All) { return(false); } } } } return(matches == groupNames.Count()); }
private static bool MatchesGroups(this UmbracoHelper helper, string[] groupNames, PersonalisationGroupDefinitionMatch matchType) { var groupsRootFolder = GetGroupsRootFolder(helper); if (groupsRootFolder == null) { return(false); } var groups = GetGroups(groupsRootFolder); return(UmbracoExtensionsHelper.MatchGroupsByName(groupNames, groups, matchType)); }
public bool MatchGroupsByName(string[] groupNames, IList <IPublishedContent> groups, PersonalisationGroupDefinitionMatch matchType) { // Package is disabled, return default if (_config.DisablePackage) { return(true); } var matches = 0; foreach (var groupName in groupNames) { var group = groups .FirstOrDefault(x => string.Equals(x.Name, groupName, StringComparison.InvariantCultureIgnoreCase)); if (@group == null) { continue; } if (MatchGroup(@group)) { if (matchType == PersonalisationGroupDefinitionMatch.Any) { return(true); } matches++; } else { if (matchType == PersonalisationGroupDefinitionMatch.All) { return(false); } } } return(matches == groupNames.Length); }