public ICollection <OfferModel> SimpleSearch(SimpleSearchCriteria criteria) { var searchModel = criteria.MapToSearchModel(); var queryProvider = new SimpleSearchQueryProvider(searchModel); var query = queryProvider.GetSearchExpression(); var result = _repository.GetWithExpression(query, 1000, 1); var offerModels = result .Select(x => x.MapToOfferModel()) .ToList(); return(offerModels); }
public void GetSearchExpression_returns_correct_query_for_simple_search() { var searchModel = new SearchModel { MaxCost = "1000", NumberOfRooms = "1" }; var sut = new SimpleSearchQueryProvider(searchModel); var expected = new CtsAndQuery( new CtsElementRangeQuery(OfferConstants.TotalCost, "'<='", new XsDouble(searchModel.MaxCost).Query), new CtsElementRangeQuery(OfferConstants.Rooms, "'>='", new XsInteger(searchModel.NumberOfRooms).Query), new CtsNotQuery(new CtsElementValueQuery(OfferConstants.OfferType, OfferTypeConstants.Outdated)), new CtsCollectionQuery(OfferConstants.CollectionName)).Query; var result = sut.GetSearchExpression().Query; Assert.AreEqual(expected, result); }