Exemple #1
0
        public async Task <List <Transformation> > GetTransformations(TransformationQuery query)
        {
            var content = await RepositoryParser.ParseRepository <List <Transformation> >(filePaths.Transformations);

            var queryedItems = FilterTransformations(content, query);

            return(queryedItems);
        }
 public async Task <IActionResult> GetTransformations([FromQuery] TransformationQuery query)
 {
     try
     {
         return(Ok(await transformationsService.GetTransformations(query)));
     }
     catch (FileNotFoundException ex)
     {
         return(BadRequest(ex));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }
Exemple #3
0
        private List <Transformation> FilterTransformations(List <Transformation> transformations, TransformationQuery query)
        {
            if (query == null)
            {
                return(transformations);
            }

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

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

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

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

            return(transformations);
        }