public async Task GivenLA_ResultsShouldMatchExpectations() { //Given var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "LA PAZ", "LA PLATA", "LAGOS", "LEEDS" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new[] { "LA PAZ", "LA PLATA", "LAGOS" }, NextLetters = new[] { " ", "G" } }; //When var results = citySearch.Search("LA"); //Then results.ShouldBeEquivalentTo(expectedResult); }
//1. Allow user to navigate to day1/index OR day1 // by creating an Index action. public IActionResult Index() { //7. Pass a city search model into the index view. var citySearch = new CitySearch(); return(View(citySearch)); }
public async Task GivenZE_ResultsShouldMatchExpectations() { //Given var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "ZARIA", "ZHUGHAI", "ZIBO" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new string[0], NextLetters = new string[0] }; //When var results = citySearch.Search("ZE"); //Then results.ShouldBeEquivalentTo(expectedResult); }
public async Task InvalidCharactersInSet_OnlyCitiesWithValidCharactersReturned() { //Given var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "Valid", "In%Valid", "In3Valid", "Val*id" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new[] { "Valid" }, NextLetters = new[] { "a" } }; //When var results = citySearch.Search("V"); //Then results.ShouldBeEquivalentTo(expectedResult); }
public async Task InvalidCasing_MatchesAreNotCaseSensitive_ReturnsMatches() { // Given var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "London", "Londonderry" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new[] { "London", "Londonderry" }, NextLetters = new[] { "d" } }; // When var results = citySearch.Search("lon"); // Then results.ShouldBeEquivalentTo(expectedResult); }
public async Task NextLetter_HyphenReturned_AsValidNextLetter() { // Given var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "Stockton-on-Tees" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new[] { "Stockton-on-Tees" }, NextLetters = new[] { "-" } }; // When var results = citySearch.Search("Stockton"); // Then results.ShouldBeEquivalentTo(expectedResult); }
//4. Allow the user to navigate to day1/searchresult // by creating a search result action. //9. Have the model passed in to the result action public IActionResult SearchResult(CitySearch citySearch) { //11. Call the DAL to get matching cities var cities = dao.GetCities(citySearch.CountryCode, citySearch.District); //12. Pass the cities into the view citySearch.Results = cities; return(View("Index", citySearch)); }
public void selectCity(CityDescriptor descriptor) { foreach (CitySearch city in cityListSearch.cities) { if (city.name.Equals(descriptor.city) && city.country.Equals(descriptor.country_code)) { selectedCity = city; break; } } }
public void ReturnSuccess_WhenNoCityFound() { // Assign CitySearch citySearch = new CitySearch(); // Act var result = citySearch.Search("test"); // Assert Assert.AreEqual(0, result.Count); }
public PagedResponse <CityQueryDto> Execute(CitySearch search) { var query = _context.Cities.Include(x => x.Locations).AsQueryable(); if (!string.IsNullOrEmpty(search.Name) || !string.IsNullOrWhiteSpace(search.Name)) { query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower())); } return(query.Paged <CityQueryDto, City>(search, _mapper)); }
public void ReturnSuccess_WhenFoundCityWithInsensitiveCase() { // Assign CitySearch citySearch = new CitySearch(); // Act List <string> result = citySearch.Search("une"); // Assert Assert.AreEqual("Pune", result[0]); }
public void ReturnSuccess_WhenFoundCity() { // Assign CitySearch citySearch = new CitySearch(); // Act List <string> result = citySearch.Search("umb"); // Assert Assert.AreEqual("Mumbai", result[0]); }
public ActionResult <IEnumerable <CityDto> > Get([FromQuery] CitySearch citySearch) { try { var cities = _getCitiesCommand.Execute(citySearch); return(Ok(cities)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public void ReturnSuccess_WhenShortQuery() { // Assign CitySearch citySearch = new CitySearch(); // Act List <string> result = citySearch.Search("um"); // Assert Assert.AreEqual(0, result.Count); }
public void ReturnSuccess_WhenFoundCityWithMulitpleResult() { // Assign CitySearch citySearch = new CitySearch(); // Act List <string> result = citySearch.Search("elh"); // Assert Assert.AreEqual(2, result.Count); }
public IEnumerable <CityDTO> Execute(CitySearch criteria) { var query = Context.Cities.AsQueryable(); if (criteria.CityName != null) { query = query.Where(c => c.CityName.ToLower().Contains(criteria.CityName.ToLower()) && c.Deleted == false); } if (criteria.OnlyActive.HasValue) { query = query.Where(c => c.Deleted != criteria.OnlyActive); } return(query.Include(u => u.Users).Select(c => new CityDTO { Id = c.Id, CityName = c.CityName, Users = c.Users.Select(u => u.Username) })); }
public IEnumerable <CityDto> Execute(CitySearch request) { var query = Context.Cities.Include(c => c.Players).Include(c => c.Clubs).AsQueryable().Where(c => c.IsDeleted == false); if (request.Name != null) { query = query.Where(c => c.Name.ToLower().Contains(request.Name.ToLower())); } if (request.PostalCode != 0) { query = query.Where(c => c.PostalCode == request.PostalCode); } return(query.Where(c => c.IsDeleted == false).Select(c => new CityDto { ClubsId = c.Clubs.Select(cl => cl.Id), Id = c.Id, Name = c.Name, PostalCode = c.PostalCode, PlayersId = c.Players.Select(p => p.Id) })); }
public async Task GivenBang_ResultsShouldMatchExpectations() { var mockDataReadModel = Substitute.For <IDataReadModel>(); mockDataReadModel.GetData().Returns(new List <string> { "BANDUNG", "BANGUI", "BANGKOK", "BANGALORE" }); var citySearch = new CitySearch(mockDataReadModel, new CityCharacterValidator(), new Trie()); await citySearch.Initialise(); var expectedResult = new CityResult { NextCities = new[] { "BANGUI", "BANGKOK", "BANGALORE" }, NextLetters = new[] { "U", "K", "A" } }; var results = citySearch.Search("BANG"); results.ShouldBeEquivalentTo(expectedResult); }
void SearchCity() { Cities = new ObservableCollection <SelectCitiesViewModel>( CitiesSave.Where(n => n.Name.ToLower().Contains(CitySearch.ToLower()))); }
public override async Task <Tuple <List <Model.Response.City>, int> > GetByParametersAsync(CitySearch search, string order, string nameOfColumnOrder, int start, int length) { var query = ctx.Cities.Include(x => x.Country).AsQueryable(); if (!string.IsNullOrWhiteSpace(search.Name)) { query = query.Where(x => x.Name.Contains(search.Name, StringComparison.CurrentCultureIgnoreCase)); } if (!string.IsNullOrWhiteSpace(search.ShortName)) { query = query.Where(x => x.ShortName.Contains(search.ShortName, StringComparison.CurrentCultureIgnoreCase)); } if (search.CountryID != null) { query = query.Where(x => x.CountryID == search.CountryID); } if (search.PostalCode != null) { query = query.Where(x => x.PostalCode == search.PostalCode); } if (search.Active != null) { query = query.Where(x => x.Active == search.Active); } if (nameof(Database.City.Name) == nameOfColumnOrder) { query = query.OrderByAscDesc(x => x.Name, order); } else if (nameof(Database.City.ShortName) == nameOfColumnOrder) { query = query.OrderByAscDesc(x => x.ShortName, order); } else if (nameof(Database.City.CountryID) == nameOfColumnOrder) { query = query.OrderByAscDesc(x => x.Country.Name, order); } else if (nameof(Database.City.ID) == nameOfColumnOrder) { query = query.OrderByAscDesc(x => x.ID, order); } var count = await query.CountAsync(); query = query.Skip(start).Take(length); return(new Tuple <List <Model.Response.City>, int>(mapper.Map <List <Model.Response.City> >(await query.ToListAsync()), count)); }
public ActionResult Get([FromQuery] CitySearch criteria) => Ok(_getCitiesCommand.Execute(criteria));
public IActionResult Get([FromQuery] CitySearch search, [FromServices] IGetCitiesQuery query) { return(Ok(_executor.ExecuteQuery(query, search))); }