public async Task <IEnumerable <CreatureReadModel> > Handle(FindPartyQuery query, CancellationToken cancellationToken) { var party = await _database.GetCollection <Party>("parties").AsQueryable() .Where(x => x.Name == query.Party) .SingleOrDefaultAsync(cancellationToken); var collection = _database.GetCollection <Player>("players"); var q = collection.AsQueryable(); q = party == null ? q : q.Where(x => party.Members.Contains(x.Name)); var players = await q .OrderBy(x => x.Name) .ToListAsync(cancellationToken); await LoadGear(players.ToArray()); return(_mapper.Map <IEnumerable <CreatureReadModel> >(players)); }
public Task <IEnumerable <CreatureReadModel> > Find(FindPartyQuery query, CancellationToken cancellationToken) { return(_mediator.Send(query ?? new FindPartyQuery(), cancellationToken)); }