using (var session = _documentStore.OpenSession())
{
var result =
session.Query<Entry>().Where(
x => x.User.Id == userId && x.Deck == deckId).OrderBy(x => x.Score).Customize(
x => x.WaitForNonStaleResultsAsOfNow()).FirstOrDefault();
if (result != null)
{
var first = session.Query<Entry>().Where(
x => x.Deck == deckId && x.Score < result.Score).OrderByDescending(
x => x.Score).Take(count/2);
var last = session.Query<Entry>().Where(
x => x.Deck == deckId && x.Score > result.Score).OrderByDescending(
x => x.Score).Take(count / 2);
results.AddRange(last);
results.Add(result);
results.AddRange(first);
}
return results.ToArray();