using System; using System.Collections.Generic; using System.Collections.ObjectModel; namespace Ant.DbExpressions { public class DbCaseWhenExpression : DbExpression { ReadOnlyCollection _whenThenPairs; DbExpression _else; public DbCaseWhenExpression(Type type, IList whenThenPairs, DbExpression @else) : base(DbExpressionType.CaseWhen, type) { this._whenThenPairs = new ReadOnlyCollection(whenThenPairs); this._else = @else; } public ReadOnlyCollection WhenThenPairs { get { return this._whenThenPairs; } } public DbExpression Else { get { return this._else; } } public override T Accept(DbExpressionVisitor visitor) { return visitor.Visit(this); } public struct WhenThenExpressionPair { DbExpression _when; DbExpression _then; public WhenThenExpressionPair(DbExpression when, DbExpression then) { this._when = when; this._then = then; } public DbExpression When { get { return this._when; } } public DbExpression Then { get { return this._then; } } } } }