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