crm: fixed sql

This commit is contained in:
Alexey Bannov 2021-06-30 19:55:20 +03:00
parent b6b1c72769
commit 4be9f847fa
3 changed files with 29 additions and 18 deletions

View File

@ -381,13 +381,15 @@ namespace ASC.CRM.Core.Dao
{
case DealSortedByType.Title:
{
sqlQuery = sqlQuery.OrderBy("x.x.Title", orderBy.IsAsc);
sqlQuery = orderBy.IsAsc ? sqlQuery.OrderBy(x => x.x.Title)
: sqlQuery.OrderByDescending(x => x.x.Title);
break;
}
case DealSortedByType.BidValue:
{
sqlQuery = sqlQuery.OrderBy("x.x.BidValue", orderBy.IsAsc);
sqlQuery = orderBy.IsAsc ? sqlQuery.OrderBy(x => x.x.BidValue)
: sqlQuery.OrderByDescending(x => x.x.BidValue);
break;
}

View File

@ -527,22 +527,22 @@ namespace ASC.CRM.Core.Dao
switch ((RelationshipEventByType)orderBy.SortedBy)
{
case RelationshipEventByType.Category:
sqlQuery = sqlQuery.OrderBy(x => x.CategoryId);
sqlQuery = sqlQuery.OrderBy("CategoryId", orderBy.IsAsc);
break;
case RelationshipEventByType.Content:
sqlQuery = sqlQuery.OrderBy(x => x.Content);
sqlQuery = sqlQuery.OrderBy("Content", orderBy.IsAsc);
break;
case RelationshipEventByType.CreateBy:
sqlQuery = sqlQuery.OrderBy(x => x.CreateBy);
sqlQuery = sqlQuery.OrderBy("CreateBy", orderBy.IsAsc);
break;
case RelationshipEventByType.Created:
sqlQuery = sqlQuery.OrderBy(x => x.CreateOn);
sqlQuery = sqlQuery.OrderBy("CreateOn", orderBy.IsAsc);
break;
}
}
else
{
sqlQuery = sqlQuery.OrderBy(x => x.CreateOn);
sqlQuery = sqlQuery.OrderBy("CreateOn", orderBy.IsAsc);
}
return _mapper.Map<List<DbRelationshipEvent>, List<RelationshipEvent>>(sqlQuery.ToList());

View File

@ -641,17 +641,26 @@ namespace ASC.CRM.Core.Dao
break;
case TaskSortedByType.ContactManager:
{
sqlQuery = sqlQuery.GroupJoin(_userDbContext.Users.Where(x => x.Tenant == TenantID),
x => x.ResponsibleId,
y => y.Id,
(x, y) => new { x, y }
)
.SelectMany(x => x.y.DefaultIfEmpty(), (x, y) => new { x.x, y })
.OrderBy("x.y.LastName", orderBy.IsAsc)
.OrderBy("x.y.FirstName", orderBy.IsAsc)
.OrderBy(x => x.x.Deadline)
.OrderBy(x => x.x.Title)
.Select(x => x.x);
var sqlQueryPart = sqlQuery.GroupJoin(_userDbContext.Users.Where(x => x.Tenant == TenantID),
x => x.ResponsibleId,
y => y.Id,
(x, y) => new { x, y }
)
.SelectMany(x => x.y.DefaultIfEmpty(), (x, y) => new { x.x, y });
if (orderBy.IsAsc)
sqlQueryPart = sqlQueryPart.OrderBy(x => x.y.LastName)
.ThenBy(x => x.y.FirstName)
.ThenBy(x => x.x.Deadline)
.ThenBy(x => x.x.Title);
else
sqlQueryPart = sqlQueryPart.OrderByDescending(x => x.y.LastName)
.ThenByDescending(x => x.y.FirstName)
.ThenBy(x => x.x.Deadline)
.ThenBy(x => x.x.Title);
sqlQuery = sqlQueryPart.Select(x => x.x);
}
break;