/// <summary> /// Searches the specified search criteria. /// </summary> /// <param name="searchCriteria">The search criteria.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">searchCriteria</exception> public async Task <bool> SearchAsync(IEnumerable <Search> searches, CancellationToken cancellationToken) { //ToDo Pass in a list of Search Criteria complete with names and loop through taht if (searches == null) { throw new ArgumentNullException(nameof(searches)); } //todo loop by names int runs = 0; foreach (var search in searches) { if (runs > search.Criteria.MaxRuns) { logger.InformationEvent("SearchAsync", "Search stopped after exceeding maximum of {maxRuns}", search.Criteria.MaxRuns); break; } var personSearch = await PersonSearchRequestHelper.SearchAsync(search, SearchWaitMs, cancellationToken); logger.InformationEvent("SearchAsync", "Search number {run} returned {numberOfResults} results", runs, personSearch.NumberOfResults); var people = PersonSearchResultHelper.Process(personSearch); runs++; } return(true); }
/// <summary> /// Imports the person searches from json. /// </summary> /// <param name="folderPath">The folder path.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public void ImportSearches(string folderPath) { foreach (string fullPath in Directory.EnumerateFiles(folderPath, "*.json", SearchOption.AllDirectories)) { var jObject = Import.FromJson(fullPath); var personSearch = PersonSearchResultHelper.Import(jObject); var people = PersonSearchResultHelper.Process(personSearch); } }
public void Process_ValidInput_CreatePerson() { //Arrange var personSearch = MockDataFactory.GetPersonSearchResult(); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; //Act var result = PersonSearchResultHelper.Process(personSearch); //Assert Assert.IsAssignableFrom <IEnumerable <Person> >(result); MockRepository.Verify(c => c.Create(It.IsAny <Person>()), Times.Exactly(result.Count())); MockRepository.Verify(c => c.SaveAsync(), Times.Exactly(result.Count())); }