public Task <Response <IList <CardDto> > > Handle(GetCardsQuery request, CancellationToken cancellationToken) { var yellowCards = new List <CardDto>(); Expression <Func <Player, bool> > filterPlayer = null; Expression <Func <Manager, bool> > filterManager = null; if (request.CardType == CardType.Yellow) { filterPlayer = p => p.YellowCard > 0; filterManager = m => m.YellowCard > 0; } else { filterPlayer = p => p.RedCard > 0; filterManager = m => m.RedCard > 0; } var players = UnityOfWork.PlayerRepository.Get(filterPlayer, null, string.Empty, true).AsQueryable(); foreach (var player in players) { yellowCards.Add(new CardDto { Id = player.Id, Name = player.Name, Total = player.YellowCard }); } var managers = UnityOfWork.ManagerRepository.Get(filterManager, null, string.Empty, true).AsQueryable(); foreach (var manager in managers) { yellowCards.Add(new CardDto { Id = manager.Id, Name = manager.Name, Total = manager.YellowCard }); } return(Task.FromResult(Response.Ok <IList <CardDto> >(yellowCards, string.Empty))); }