public async Task <IActionResult> Get([FromBody] TraitOptionFilter filter) { if (!ModelState.IsValid) { return(BadRequest()); } return(Ok(await _traitOptionRepository.SearchAsync(filter))); }
private async Task AddAgeTrait(Pet animal) { var traitAge = await _traitRepository.SearchAsync(new TraitFilter { PerPage = 1000, TraitName = "גיל" }); //in case pet has date of birth, remove previous given age trait //because we want to set age trait according to the date of birth var traitAgeId = traitAge.Where(t => t.AnimalTypeId == animal.AnimalTypeId).FirstOrDefault().Id; var traitToRemove = animal.PetTraits.FirstOrDefault(p => p.Trait.Id == traitAgeId); if (traitToRemove != null) { animal.PetTraits.Remove(traitToRemove); } //animal.Birthday != null. DateTime animalBd = (DateTime)animal.Birthday; var age = new Age(animalBd); var ageInMonth = age.Years * 12 + age.Months; // גור עד 9 חודשים // צעיר - 9-24 חודשים // בוגר 2-7 שנים // מבוגר - מעל 7 שנים string option = string.Empty; if (ageInMonth <= 9) { option = "גור"; } else if (ageInMonth > 9 && ageInMonth <= 24) { option = "צעיר"; } else if (age.Years > 2 && age.Years <= 7) { option = "בוגר"; } else { option = "מבוגר"; } var options = await _traitOptionRepository.SearchAsync(new TraitOptionFilter { TraitId = traitAgeId }); var optionId = options .Where(o => o.Option == option) .FirstOrDefault().Id; //if (animal.PetTraits.Any(pt => pt.TraitId == traitAgeId || pt.Trait?.Id == traitAgeId)) // return; animal.PetTraits.Add(new PetTrait { TraitId = traitAgeId, TraitOptionId = optionId, }); }