public PlayersToCreateModel GetPlayersToCreate(string currentUserId, int currentGamingGroupId)
{
var currentUserPlayer = dataContext.GetQueryable<Player>().FirstOrDefault(p => p.ApplicationUserId == currentUserId && p.GamingGroupId == currentGamingGroupId);
var recentPlayersQuery = GetPlayersToCreateQueryable(currentUserPlayer, currentGamingGroupId)
.OrderByDescending(
p => p.PlayerGameResults
.Select(pgr => pgr.PlayedGame.DatePlayed)
.OrderByDescending(d => d)
.FirstOrDefault())
.ThenBy(p => p.Name)
.Take(5);
var otherPlayersQuery = GetPlayersToCreateQueryable(currentUserPlayer,currentGamingGroupId)
.Where(p => recentPlayersQuery.All(rp => rp.Id != p.Id))
.OrderBy(p => p.Name);
var result = new PlayersToCreateModel
{
UserPlayer = GetPlayerInfoForUser(currentUserPlayer),
OtherPlayers = otherPlayersQuery.Select(GetPlayerInfoForUser).ToList(),
RecentPlayers = recentPlayersQuery.Select(GetPlayerInfoForUser).ToList()
};
return result;
}