/// <summary> /// Builds an Entity Data Model from a given CM Component Presentation on a Page. /// </summary> /// <param name="entityModelData">The Entity Data Model to build. Is <c>null</c> for the first Model Builder in the pipeline.</param> /// <param name="cp">The CM Component Presentation (obtained from a Page).</param> public void BuildEntityModel(ref EntityModelData entityModelData, ComponentPresentation cp) { // Add extension data for Context Expressions (if applicable) ContentModelData contextExpressions = new ContentModelData(); object includeContextExpressions = GetContextExpressions( ContextExpressionUtils.GetContextExpressions( cp.Conditions.Where(c => !c.Negate).Select(c => c.TargetGroup))); object excludeContextExpressions = GetContextExpressions( ContextExpressionUtils.GetContextExpressions( cp.Conditions.Where(c => c.Negate).Select(c => c.TargetGroup))); if (includeContextExpressions != null) { Logger.Debug("Adding Context Expression Conditions (Include): " + string.Join(", ", includeContextExpressions)); contextExpressions.Add("Include", includeContextExpressions); } if (excludeContextExpressions != null) { Logger.Debug("Adding Context Expression Conditions (Exclude): " + string.Join(", ", excludeContextExpressions)); contextExpressions.Add("Exclude", excludeContextExpressions); } if (contextExpressions.Count > 0) { entityModelData.SetExtensionData("ContextExpressions", contextExpressions); } }
/// <summary> /// Builds an Entity Data Model from a given CM Component Presentation on a Page. /// </summary> /// <param name="entityModelData">The Entity Data Model to build. Is <c>null</c> for the first Model Builder in the pipeline.</param> /// <param name="cp">The CM Component Presentation (obtained from a Page).</param> public void BuildEntityModel(ref EntityModelData entityModelData, ComponentPresentation cp) { // Add extension data for Context Expressions (if applicable) string[] includeContextExpressions = ContextExpressionUtils.GetContextExpressions(cp.Conditions.Where(c => !c.Negate).Select(c => c.TargetGroup)); string[] excludeContextExpressions = ContextExpressionUtils.GetContextExpressions(cp.Conditions.Where(c => c.Negate).Select(c => c.TargetGroup)); if (includeContextExpressions.Any()) { Logger.Debug("Adding Context Expression Conditions (Include): " + string.Join(", ", includeContextExpressions)); entityModelData.SetExtensionData("CX.Include", includeContextExpressions); } if (excludeContextExpressions.Any()) { Logger.Debug("Adding Context Expression Conditions (Exclude): " + string.Join(", ", excludeContextExpressions)); entityModelData.SetExtensionData("CX.Exclude", excludeContextExpressions); } }
public void BuildEntityModel(ref EntityModelData entityModelData, ComponentPresentation cp) { Logger.Debug("Adding target groups to entity model data."); if (cp.Conditions == null || cp.Conditions.Count <= 0) { return; } List <Condition> conditions = new List <Condition>(); foreach (var condition in cp.Conditions) { var mapped = MapConditions(condition.TargetGroup.Conditions); if (mapped == null || mapped.Count <= 0) { continue; } conditions.AddRange(mapped); } if (conditions.Count > 0) { entityModelData.SetExtensionData("TargetGroupConditions", conditions.ToArray()); } }