#18319: Fixing the Where clause generations in Projections

Work Item: 18319

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros 2012-01-04 17:37:56 -08:00
parent bbcd00ae8b
commit af87c07ebf
2 changed files with 12 additions and 19 deletions

View File

@ -1,5 +1,5 @@
eb12bf266fcd8334b7a20d7553dd28f9c80dfa07 src/Orchard.Web/Modules/Orchard.Forms
8a370b966ac7ccbb6564af4b748084c2e68438d3 src/Orchard.Web/Modules/Orchard.Projections
6668e827c75141ac2f49664a1f6461b8aa7ee618 src/Orchard.Web/Modules/Orchard.Projections
7e6e3d2e72d94c3f78e8aecc0aa87ede108226bd src/Orchard.Web/Modules/Orchard.Rules
c6098ad6c3fdb614901e8946d8e298e3c50f3ea1 src/Orchard.Web/Modules/Orchard.TaskLease
4c4fd36df9d1337c0b6801960d02221debcf4388 src/Orchard.Web/Modules/Orchard.Tokens

View File

@ -193,27 +193,22 @@ namespace Orchard.ContentManagement {
sb.Append(join.Item2.Type).Append(" ").Append(join.Item1.Name + "." + join.Item2.TableName).Append(" as ").Append(join.Item2.Name).AppendLine();
}
#region Where
// generating where clause
if (_wheres.Any()) {
sb.Append("where ");
bool first = true;
foreach (var where in _wheres) {
if (!first) {
sb.Append("and ");
}
else {
sb.Append("where ");
first = false;
var expressions = new List<string>();
foreach (var where in _wheres) {
var expressionFactory = new DefaultHqlExpressionFactory();
where.Item2(expressionFactory);
expressions.Add(expressionFactory.Criterion.ToHql(where.Item1));
}
var expressionFactory = new DefaultHqlExpressionFactory();
where.Item2(expressionFactory);
sb.Append(expressionFactory.Criterion.ToHql(where.Item1)).AppendLine();
sb.Append("(").Append(String.Join(") AND (", expressions.ToArray())).Append(")").AppendLine();
}
#endregion
#region Order by
// generating order by clause
bool firstSort = true;
foreach (var sort in _sortings) {
if (!firstSort) {
@ -238,8 +233,6 @@ namespace Orchard.ContentManagement {
}
}
#endregion
return sb.ToString();
}