Core: added sorting users by type

This commit is contained in:
Maksim Chegulov 2022-11-14 12:17:33 +03:00
parent 13eb4fec1b
commit 629f44b2f2

View File

@ -221,7 +221,18 @@ public class EFUserService : IUserService
if (!string.IsNullOrEmpty(sortBy))
{
q = q.OrderBy(sortBy, sortOrderAsc);
if (sortBy == "type")
{
var q1 = from user in q join userGroup in userDbContext.UserGroups.Where(g => !g.Removed && (g.UserGroupId == Users.Constants.GroupAdmin.ID || g.UserGroupId == Users.Constants.GroupUser.ID))
on user.Id equals userGroup.Userid into joinedGroup from @group in joinedGroup.DefaultIfEmpty() select new { user, @group };
q = sortOrderAsc ? q1.OrderBy(r => r.group != null && r.group.UserGroupId == Users.Constants.GroupAdmin.ID ? 1 : r.group == null ? 2 : 3).Select(r => r.user)
: q1.OrderByDescending(u => u.group != null && u.group.UserGroupId == Users.Constants.GroupAdmin.ID ? 1 : u.group == null ? 2 : 3).Select(r => r.user);
}
else
{
q = q.OrderBy(sortBy, sortOrderAsc);
}
}
if (offset != 0)