Ejemplo n.º 1
0
        public async Task<List<Enemy>> GetEnemies(EnemyQuery query)
        {
            var content = await RepositoryParser.ParseRepository<List<Enemy>>(filePaths.Enemies);

            var queryedItems = FilterEnemies(content, query);

            return queryedItems;
        }
Ejemplo n.º 2
0
 public async Task <IActionResult> GetEnemies([FromQuery] EnemyQuery query)
 {
     try
     {
         return(Ok(await enemiesService.GetEnemies(query)));
     }
     catch (FileNotFoundException ex)
     {
         return(BadRequest(ex));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }
Ejemplo n.º 3
0
        private List<Enemy> FilterEnemies(List<Enemy> enemies, EnemyQuery query)
        {
            if (query == null) return enemies;

            if (query.Id != null)
            {
                enemies = enemies.Where(x => query.Id.IndexOf(x.Id) >= 0).ToList();
            }

            if (query.Name != null)
            {
                enemies = enemies.Where(x =>
                    query.Name.Any(y =>
                        x.Name.ToLower()
                            .Contains(y.ToLower()
                        )
                    )
                ).ToList();
            }

            if (query.GameId != null)
            {
                enemies = enemies.Where(x =>
                    query.GameId.Any(id =>
                        x.AppearsInGame.Any(
                            y => y.Contains(id.ToString())
                        )
                    )
                ).ToList();
            }

            if (query.LevelId != null)
            {
                enemies = enemies.Where(x =>
                    query.GameId.Any(id =>
                        x.AppearsInLevel.Any(
                            y => y.Contains(id.ToString())
                        )
                    )
                ).ToList();
            }

            return enemies;
        }