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)); } }
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); }