protected async Task <AppResult <List <GameCard> > > GetTargetsByCharacterName(DtoEffectTargets effect, TargetingEffectParameters parameters, Game game) { var name = parameters.TargetParameter.ToString(); var targets = await dbContext.GameCards.IncludeAll() .Where(_ => _.Card.Character.Name == name && _.CardLocation == CardLocation.Board) .ToListAsync(); return(AppResult <List <GameCard> > .Success(targets)); }
protected async Task <AppResult <List <GameCard> > > GetTargetsByIds(DtoEffectTargets effect, TargetingEffectParameters parameters, Game game) { var targetsCount = Convert.ToInt32(parameters.TargetParameter); if (targetsCount != effect.TargetIds.Count) { return(AppResult <List <GameCard> > .Error(AppActionResultType.RuleError, $"You must choose exactly {targetsCount} targets to destroy.")); } var targets = await dbContext.GameCards.IncludeAll() .Where(_ => effect.TargetIds.Contains(_.Id)) .ToListAsync(); if (targets.Count != effect.TargetIds.Count) { return(VoidAppResult.Error(ErrorPreset.InvalidTargets).GetErrorAppResult <List <GameCard> >()); } return(AppResult <List <GameCard> > .Success(targets)); }