public IActionResult GetWeapons([FromQuery] WeaponsResourceParameters weaponsResourceParameters) { Console.WriteLine(weaponsResourceParameters.Type); Console.WriteLine(weaponsResourceParameters.SearchQuery); var weaponsFromRepo = _stardewValleyLibraryRepository.GetWeapons(weaponsResourceParameters); return(Ok(weaponsFromRepo)); }
public IEnumerable <Weapon> GetWeapons(WeaponsResourceParameters weaponsResourceParameters) { if (weaponsResourceParameters == null) { throw new ArgumentNullException(nameof(weaponsResourceParameters)); } if (string.IsNullOrWhiteSpace(weaponsResourceParameters.Type) && string.IsNullOrWhiteSpace(weaponsResourceParameters.SearchQuery) && string.IsNullOrWhiteSpace(weaponsResourceParameters.CriticalStrikeChance) && string.IsNullOrWhiteSpace(weaponsResourceParameters.Stats)) { return(GetWeapons()); } var collection = _context.Weapons as IQueryable <Weapon>; if (!string.IsNullOrWhiteSpace(weaponsResourceParameters.Type)) { var type = weaponsResourceParameters.Type.Trim(); collection = collection.Where(a => a.Type == type); } if (!string.IsNullOrWhiteSpace(weaponsResourceParameters.Stats)) { var stats = weaponsResourceParameters.Stats.Trim(); collection = collection.Where(a => a.Stats.Contains(stats)); } if (!string.IsNullOrWhiteSpace(weaponsResourceParameters.CriticalStrikeChance)) { var criticalStrikeChance = weaponsResourceParameters.CriticalStrikeChance.Trim(); collection = collection.Where(a => a.CriticalStrikeChance.Contains(criticalStrikeChance)); } if (!string.IsNullOrWhiteSpace(weaponsResourceParameters.SearchQuery)) { var searchQuery = weaponsResourceParameters.SearchQuery.Trim(); collection = collection.Where(a => a.Name.Contains(searchQuery) || a.Description.Contains(searchQuery)); } return(collection.ToList()); }