public async Task <List <Collectable> > GetCollectables(CollectableQuery query) { var content = await RepositoryParser.ParseRepository <List <Collectable> >(filePaths.Collectables); var queryedItems = FilterCollectables(content, query); return(content); }
public async Task <IActionResult> GetCollectables([FromQuery] CollectableQuery query) { try { return(Ok(await collectablesService.GetCollectables(query))); } catch (FileNotFoundException ex) { return(BadRequest(ex)); } catch (Exception ex) { return(BadRequest(ex)); } }
private List <Collectable> FilterCollectables(List <Collectable> collectables, CollectableQuery query) { if (query == null) { return(collectables); } if (query.Id != null) { collectables = collectables.Where(x => query.Id.IndexOf(x.Id) >= 0).ToList(); } if (query.Name != null) { collectables = collectables.Where(x => query.Name.Any(y => x.Name.ToLower() .Contains(y.ToLower() ) ) ).ToList(); } if (query.GameId != null) { collectables = collectables.Where(x => query.GameId.Any(id => x.GameQuantity.Any( y => y.Game.Contains(id.ToString()) ) ) ).ToList(); } return(collectables); }