public async Task <IActionResult> Get([FromBody] TraitOptionFilter filter) { if (!ModelState.IsValid) { return(BadRequest()); } return(Ok(await _traitOptionRepository.SearchAsync(filter))); }
private async Task AddGenderTrait(Pet animal) { var traitGenderId = await _traitRepository.SearchAsync(new TraitFilter() { PerPage = 1000, TraitName = "מין" }); var id = traitGenderId .Where(t => t.AnimalTypeId == animal.AnimalTypeId) .FirstOrDefault().Id; var filter = new TraitOptionFilter { TraitId = id }; var options = await _traitOptionRepository.SearchAsync(filter); string gender = (int)animal.Gender == 1 ? "זכר" : "נקבה"; var optionId = options .Where(o => o.Option == gender) .FirstOrDefault().Id; //var genderTraitAlreadyExist = animal.PetTraits.Any(pt => pt.TraitId == id); //var pet = await _petRepository.GetByIdAsync(animal.Id); //if (pet != null) //{ // genderTraitAlreadyExist = genderTraitAlreadyExist || pet.PetTraits.Any(pt => pt.TraitId == id); // if (genderTraitAlreadyExist) // { // return; // } //} if (animal.PetTraits.Any(pt => pt.TraitId == id || pt.Trait?.Id == id)) { return; } animal.PetTraits.Add(new PetTrait { TraitId = id, TraitOptionId = optionId }); }
public async Task <IEnumerable <TraitOption> > SearchAsync(TraitOptionFilter filter) { var query = entities.AsQueryable(); if (filter.TraitId.HasValue) { query = query.Where(o => o.TraitId == filter.TraitId); } if (!string.IsNullOrWhiteSpace(filter.Name)) { query = query.Where(o => o.Trait.Name.StartsWith(filter.Name)); } query = base.SearchAsync(query, filter); return(await query.ToListAsync()); }