Exemple #1
0
        public async Task <List <Collectable> > GetCollectables(CollectableQuery query)
        {
            var content = await RepositoryParser.ParseRepository <List <Collectable> >(filePaths.Collectables);

            var queryedItems = FilterCollectables(content, query);

            return(content);
        }
Exemple #2
0
 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));
     }
 }
Exemple #3
0
        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);
        }