public async Task <IActionResult> Get([FromBody] TraitOptionFilter filter)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest());
     }
     return(Ok(await _traitOptionRepository.SearchAsync(filter)));
 }
Пример #2
0
        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,
            });
        }