private static Formatting.FormattingRule BuildColumnFormatRule(Model.FormattingRule formattingRule, DatabaseType columnType, IReportToQueryContext context) { var converter = Factory.Current.Resolve <IReportToQueryPartsConverter>( ); if (formattingRule.Is <Model.BarFormattingRule>()) { Model.BarFormattingRule barRule = formattingRule.As <Model.BarFormattingRule>(); Formatting.BarFormattingRule barFormattingRule = new Formatting.BarFormattingRule() { Color = ColourFromString(barRule.BarColor) }; List <TypedValue> value = TypedValueHelper.TypedValueFromEntity(barRule.BarMinValue); if (value != null && value.Count > 0) { barFormattingRule.Minimum = value[0]; } value = TypedValueHelper.TypedValueFromEntity(barRule.BarMaxValue); if (value != null && value.Count > 0) { barFormattingRule.Maximum = value[0]; } return(barFormattingRule); } if (formattingRule.Is <Model.ColorFormattingRule>()) { Model.ColorFormattingRule modelColourRule = formattingRule.As <Model.ColorFormattingRule>(); List <ColorRule> colourRules = modelColourRule.ColorRules.Count > 0 ? modelColourRule.ColorRules.OrderBy(rule => rule.RulePriority ?? 0).Select(colorRule => new ColorRule { BackgroundColor = ColourFromString(colorRule.ColorRuleBackground), ForegroundColor = ColourFromString(colorRule.ColorRuleForeground), Condition = converter.ConvertCondition(colorRule.RuleCondition, columnType, context) }).ToList() : null; Formatting.ColorFormattingRule colourFormattingRule = new Formatting.ColorFormattingRule { Rules = colourRules }; return(colourFormattingRule); } if (formattingRule.Is <Model.IconFormattingRule>()) { Model.IconFormattingRule modelIconFormattingRule = formattingRule.As <Model.IconFormattingRule>(); return(new Formatting.IconFormattingRule { Rules = modelIconFormattingRule.IconRules.OrderBy(rule => rule.RulePriority ?? 0).Select(rule => new Formatting.IconRule { CfEntityId = rule.IconRuleCFIcon != null ? rule.IconRuleCFIcon.Id: -1, IconId = GetIconId(rule), Condition = converter.ConvertCondition(rule.RuleCondition, columnType, context) }).ToList() }); } return(null); }
/// <summary> /// Builds the condition parameter. /// </summary> /// <param name="reportCondition">The report condition.</param> /// <param name="queryCondition">The query condition.</param> /// <param name="context"></param> internal static void BuildConditionParameter([NotNull] ReportCondition reportCondition, QueryCondition queryCondition, FromEntityContext context) { if (reportCondition == null) { throw new ArgumentNullException(nameof(reportCondition)); } ActivityArgument activityArgument; // Get the column expression for the analysable field. If this is a referenced column then use it's referenced column's expression. ReportExpression reportExpression = reportCondition.ConditionExpression; if (reportExpression != null && reportExpression.Is <ColumnReferenceExpression>()) { reportExpression = reportCondition.ConditionExpression.As <ColumnReferenceExpression>() .ExpressionReferencesColumn.ColumnExpression; } if (reportCondition.ConditionParameter?.ParamTypeAndDefault != null) { activityArgument = reportCondition.ConditionParameter.ParamTypeAndDefault; } else if (reportExpression?.ReportExpressionResultType != null) { activityArgument = reportCondition.ConditionExpression.ReportExpressionResultType; } else { EventLog.Application.WriteWarning(context.DebugInfo + "condition parameter could not be processed"); return; } List <TypedValue> typedValues = TypedValueHelper.TypedValueFromEntity(activityArgument); foreach (TypedValue typedValue in typedValues) { queryCondition.Arguments.Add(typedValue); } }