/// <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); } }
private void AddCpExtensionData(Dd4tComponentPresentation dd4tComponentPresentation, TcmComponentPresentation tcmComponentPresentation) { if (!tcmComponentPresentation.Conditions.Any()) { return; } _logger.Debug("ComponentPresentation has Conditions"); string[] includeContextExpressions = ContextExpressionUtils.GetContextExpressions(tcmComponentPresentation.Conditions.Where(c => !c.Negate).Select(c => c.TargetGroup)); string[] excludeContextExpressions = ContextExpressionUtils.GetContextExpressions(tcmComponentPresentation.Conditions.Where(c => c.Negate).Select(c => c.TargetGroup)); if (includeContextExpressions.Any()) { _logger.Debug("Adding Context Expression Conditions (Include): " + string.Join(", ", includeContextExpressions)); dd4tComponentPresentation.AddExtensionProperty(ContextExpressionSectionName, "Include", includeContextExpressions); } if (excludeContextExpressions.Any()) { _logger.Debug("Adding Context Expression Conditions (Exclude): " + string.Join(", ", excludeContextExpressions)); dd4tComponentPresentation.AddExtensionProperty(ContextExpressionSectionName, "Exclude", excludeContextExpressions); } }