/// <summary> /// Generates the text for a ConditionalCase builder. /// </summary> /// <param name="item">The ConditionCase builder to generate the text for.</param> protected internal override void VisitConditionalCase(ConditionalCase item) { if (!item.Branches.Any()) { throw new SQLGenerationException(Resources.EmptyCaseExpression); } writer.Write("CASE"); foreach (ConditionalCaseBranch branch in item.Branches) { writer.Write(" WHEN "); branch.Condition.Accept(forSubCommand()); writer.Write(" THEN "); branch.Value.Accept(forSubCommand()); } if (item.Default != null) { writer.Write(" ELSE "); item.Default.Accept(forSubCommand()); } writer.Write(" END"); }
private void Visit(ConditionalCase condCase) { Visit(new IfStatement(condCase.Condition, condCase.Statements, null, condCase.Location)); }