public IActionResult PostAdoption(AdoptionInfoModel model) { AdoptionInfos adoptionInfos = new AdoptionInfos(); adoptionInfos.Age = model.Age; adoptionInfos.Character = model.Character; adoptionInfos.Child = model.Child.ToString(); adoptionInfos.Garden = (bool)model.Garden; adoptionInfos.GardenSize = model.GardenSize; adoptionInfos.Genre = model.Genre; adoptionInfos.Habitat = model.Habitat; adoptionInfos.HairSize = model.HairSize; adoptionInfos.Housing = model.Housing; adoptionInfos.Size = model.Size; adoptionInfos.Sportive = model.Sportive; adoptionInfos.Substitute = model.Substitute.ToString(); adoptionInfos.TimePerDay = (int)model.TimePerDay; adoptionInfos.Travel = (bool)model.Travel; adoptionInfos.TypeAnimal = model.TypeAnimal; adoptionInfos.UserId = _workContext.CurrentUser.Id; _adoptionInfoService.Insert(adoptionInfos); //Retourner les résultats du matching return(View()); }
public ISearchResponse <ElasticAnimal> GetMatches(AdoptionInfos adoptionInfo) { var search = _client.Search <ElasticAnimal>(x => x. Index("amimatch_animals") .From(0) .Size(20) .Query(qu => qu .Bool(b => b .Must(qf => { QueryContainer query = null; query = qf.QueryString(m => m .Fields(new string[] { "mood" }) .Query(adoptionInfo.Character) ); query |= qf.QueryString(m => m .Fields(new string[] { "size" }) .Query(adoptionInfo.Size) ); query |= qf.QueryString(m => m .Fields(new string[] { "hair" }) .Query(adoptionInfo.HairSize) ); query |= qf.QueryString(m => m .Fields(new string[] { "species" }) .Query(adoptionInfo.TypeAnimal) ); return(query); } ) ) ).Sort(so => so .Descending("_score") ) ); return(search); }