Exemplo n.º 1
0
        private WhereClause GetDateRangesForInOperator(string tableName, string columnName, IEnumerable<DateTime> values)
        {
            var outerContainer = WhereClause.CreateContainer(LogicOperator.And);

            int count = values.Count();
            for (int i = 0; i < count; i++)
            {
                var dateTime = values.ElementAt(i);

                var innerContainer = WhereClause.CreateContainer(i == 0 ? LogicOperator.And : LogicOperator.Or);

                var clauseFrom = new WhereClause(LogicOperator.And, tableName, columnName, ComparisonOperator.GreaterThanOrEqualTo, dateTime.Date);
                var clauseTo = new WhereClause(LogicOperator.And, tableName, columnName, ComparisonOperator.LessThan, dateTime.Date.AddDays(1));

                innerContainer.AddSubClause(clauseFrom);
                innerContainer.AddSubClause(clauseTo);

                outerContainer.AddSubClause(innerContainer);
            }

            return outerContainer;
        }