public void BasicApiPath_NoLookupOneResult_ReturnsProperResult() { var searchTerm = "foobar"; var sut = new SearchProcessor(); var collector = A.Fake <IResultCollector>(); sut.RegisterCollector <Customer>(collector); A.CallTo(() => collector.GetWeightedItemsMatching(searchTerm)) .Returns(new List <WeightedItemResult> { new WeightedItemResult { Id = 1, Weight = 10 } }); var results = sut.SearchFor(new SearchQuery <Customer>(searchTerm)); results.Count().ShouldBe(1); var searchResult = results.First(); searchResult.Id.ShouldBe(1); searchResult.Weight.ShouldBe(10); searchResult.Item.ShouldBeNull(); }
public override CommandResult Execute() { CommandResult result = new CommandResult(Command, Args); if (Shell.CurrentFolder == null) { return(CommandResult.CreateError(Command, Args, "This folder does not contain any messages")); } List <IMessage> newMsgs = new List <IMessage>(); Shell.Client.RequestManager.SubmitAndWait(new MessageListRequest(Shell.CurrentFolder, null), false); Shell.Client.RequestManager.SubmitAndWait(new SearchRequest(Shell.CurrentFolder, new SearchCriteria(true), delegate(IRequest req) { SearchProcessor sp = req.GetProcessorAsType <SearchProcessor>(); newMsgs.AddRange(sp.Messages); }), false); foreach (IMessage msg in newMsgs) { Console.WriteLine(msg.UID); } ColorConsole.WriteLine("\n^11:00{0} new message(s) found\n", newMsgs.Count); return(result); }
public MainWindowViewModel(SearchProcessor searchProcessor) { Files = new ObservableCollection <FileItemViewModel>(); var codeBase = Assembly.GetExecutingAssembly().CodeBase; var uri = new UriBuilder(codeBase); var path = Uri.UnescapeDataString(uri.Path); var directory = Path.GetDirectoryName(path); OutputFile = $"{directory}\\SearchResult{DateTime.UtcNow:_yyyy_MM_dd_HH_mm_ss}.xlsx"; SelectFiles = new RelayCommand(OnSelectFiles); RemoveFile = new RelayCommand(OnRemoveFile); Search = new RelayCommand(OnSearch); CanceleSearch = new RelayCommand(OnCanceleSearch); OpenFile = new RelayCommand(OnOpenFile); SkipCurrentReqest = new RelayCommand(OnSkipCurrentRequest); Retry = new RelayCommand(OnRetry); SearchForFailedResults = new RelayCommand(OnSearchForFailedResults); SearchEnabled = Files.Any(); this.searchProcessor = searchProcessor; searchProcessor.ProgressChagned += SearchProcessor_ProgressChagned; searchProcessor.SearchCompleted += SearchProcessor_SearchCompleted; ExcelFile.SaveProgressChagned += ExcelFile_SaveProgressChagned; ExcelFile.SaveCompleted += ExcelFile_SaveCompleted; SearchStatus = "Not started"; SaveStatus = "Not started"; searchProcessor.SearchReqestChanged += SearchProcessor_ReqestChanged; SearchReqestMessage = "Not started"; }
public async Task <IActionResult> Search(string query = "") { try { var user = await _ctx.Users.GetUserByName(User.Identity.Name); var appUser = Mapper.Map <ApplicationUser>(user); List <DbTopic> matchTopics; if (await IsAdminOrManager(user.Id)) { matchTopics = await _ctx.Topics.GetByAdminId(user.Id); } else { matchTopics = await _ctx.Topics.GetByUserId(user.Id); } FillNames(matchTopics, user, appUser.Name); var searchProcessor = new SearchProcessor(matchTopics); var resultTopics = searchProcessor.Contains(query); await FillResultTopics(matchTopics, user); appUser.Topics = resultTopics; var unreadMessage = await _ctx.Messages.GetUnreadMessages(user.Id); appUser.NewMessages = unreadMessage; return(Json(appUser)); } catch (Exception e) { _logger.LogError($"Search error. {e.Message}"); return(BadRequest()); } }
public static void CreateSite() { if (Verbose) Console.WriteLine(Version); string siteFolder = (SiteFolder == "/site") ? Folder+"/site" : SiteFolder; // CheckExtensions(Folder+"/content"); TemplateTypes = ScanTemplateTypes(); // StringBuilder nav = new StringBuilder(); FileUtils.CreateFolder(siteFolder); Bijou.TopNavXml = NavUtils.BuildTopNavXml(Folder+"/content"); Bijou.TopNav = NavUtils.BuildTopNav(); ProcessFolder(Folder+"/content", siteFolder); if (SearchProcessor.HasSearchData()) { SearchProcessor processor = new SearchProcessor(); processor.Consume(); FileUtils.WriteFile(processor.SiteFile, processor.Template, processor.Content); } }
private void InitializeViewModelExecute() { this._searchProcessor = new SearchProcessor(); this.SearchString = string.Empty; this.SubmittedResponses = new ObservableCollection <ResponseSet>(); this.SavedResponses = new ObservableCollection <ResponseSet>(); this.Surveys = new ObservableCollection <Survey>(); this.surveyRepository = new SurveyRepository(); this.responsesRepository = new ResponseSetRepository(); }
public static void Main(string[] args) { if (args.Count() < 1) { Console.WriteLine("You have to enter at least one argument"); return; } var runners = GetConfiguration().SearchRunners.ToList(); SearchProcessor processor = new SearchProcessor(runners); InputValidator validator = new InputValidator(); validator.Pattern = "^[a-zA-Z0-9 ]*$"; for (int i = 0; i < args.Count(); i++) { string word = args[i]; if (!validator.Validate(word)) { Console.WriteLine("One or more arguments are invalid."); return; } Query query = new Query(); if (word.StartsWith("\"")) { query.SetContent(word.Substring(1)); while (true) { string nextWord = args[i++]; if (nextWord.EndsWith("\"")) { query.SetContent(nextWord.Substring(0, nextWord.Length - 1)); break; } else { query.SetContent(nextWord); } } } else { query.SetContent(word); } processor.AddQuery(query); } processor.ProcessQueries(); PrintResults(processor, runners); Console.ReadLine(); }
/// <summary> /// Search for new messages within the specified folder /// </summary> /// <param name="folder"></param> public void Start(IFolder folder) { _client.RequestManager.SubmitRequest(new SearchRequest(folder, _criteria, delegate(IRequest req) { SearchProcessor sp = req.GetProcessorAsType <SearchProcessor>(); IMessage[] msgs = sp.Messages; if (NewMessageRequestCompleted != null) { NewMessageRequestCompleted(msgs); } }), true); }
public void TestSearch() { var db = Directory.EnumerateFiles(Environment.CurrentDirectory).FirstOrDefault(x => x.Contains(DateTime.Now.Day.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Year.ToString())); if (db == null) return; using (var reader = new StreamReader(db)) { var results = new SearchResults(); results.Results = new List<SearchResult>(); reader.ReadToEnd().Split(new char[] { '\n' }).ToList().ForEach(x => { var result = new SearchResult(); result.Raw = x; results.Results.Add(result); }); var info = new SearchResultsInfo(); var search = new SearchProcessor(); Assert.IsTrue(results.Results.Count > 0, "no results returned."); Assert.IsTrue(search.Execute(results, info), "Search failed."); } }
public void BasicApiPath_NoResults() { var searchTerm = "foobar"; var sut = new SearchProcessor(); var collector = A.Fake <IResultCollector>(); sut.RegisterCollector <Customer>(collector); A.CallTo(() => collector.GetWeightedItemsMatching(searchTerm)) .Returns(Enumerable.Empty <WeightedItemResult>()); var results = sut.SearchFor(new SearchQuery <Customer>(searchTerm)); results.Count().ShouldBe(0); }
private static void PrintResults(SearchProcessor processor, List <ISearchEngine> runners) { for (var i = 0; i < processor.Queries.Count; i++) { Console.Write("{0}) {1}: ", i + 1, processor.Queries[i]); for (var j = 0; j < runners.Count; j++) { Console.Write("| {0} > {1} | ", runners[j].Name, processor.Results[i, j]); } Console.WriteLine(); } foreach (var winner in processor.PartialWinners) { Console.WriteLine("*) {0} winner: {1}", winner.Key, winner.Value); } Console.WriteLine("> Total winner: {0}", processor.TotalWinner); }
public async void SearchButton() { if (searchText != null) { if (searchText.Length > 0) { var userList = await SearchProcessor.SearchByUsername(searchText).ConfigureAwait(true); Users = new BindableCollection <UserModel>(); for (int i = 0; i < userList.Count; i++) { if (userList[i].Username != (Parent as PostLogInViewModel).User.Username || userList[i].FirstName.Length > 0) { Users.Add(userList[i]); } } } } }
private static void PrintResults(SearchProcessor processor, List <RunnerSerializer> runners) { for (int i = 0; i < processor.Queries.Count; i++) { Console.Write(string.Format("{0}) {1}: ", i, processor.Queries[i])); for (int j = 0; j < runners.Count; j++) { Console.Write(string.Format("| {0} > {1} | ", runners[j].SearchEngineName, processor.Results[i, j])); } Console.WriteLine(); } foreach (var winner in processor.PartialWinners) { Console.WriteLine(string.Format("*) {0} winner: {1}", winner.Key, winner.Value)); } Console.WriteLine(string.Format("> Total winner: {0}", processor.TotalWinner)); }
public static void Main(string[] args) { if (!args.Any()) { Console.WriteLine("You have to enter at least one argument"); return; } var config = new ProgramConfiguration(); var searchEngines = config.GetConfiguration(); var processor = new SearchProcessor(searchEngines); var validator = new InputValidator { Pattern = @"^[a-zA-Z0-9 .#+!]*$" }; //We can modify this filter according of what we want to search for for (var i = 0; i < args.Count(); i++) { var word = args[i]; if (!validator.Validate(word)) { Console.WriteLine("One or more arguments are invalid (admitted: words, numbers and symbols # . ! +)."); return; } var query = new Query(); var tokens = word.Split(' '); foreach (var token in tokens) { query.SetContent(token); } processor.AddQuery(query); } processor.ProcessQueries(); PrintResults(processor, searchEngines); Console.WriteLine("Press Enter to finish"); Console.ReadLine(); }
public void BasicApiPath_NoLookupTwoItemWithMultipleResults_ReturnsSortedGroupedAndTalliesWeight() { var searchTerm = "foobar"; var sut = new SearchProcessor(); var collector = A.Fake <IResultCollector>(); sut.RegisterCollector <Customer>(collector); A.CallTo(() => collector.GetWeightedItemsMatching(searchTerm)) .Returns(new List <WeightedItemResult> { new WeightedItemResult { Id = 1, Weight = 10 }, new WeightedItemResult { Id = 1, Weight = 2 }, new WeightedItemResult { Id = 3, Weight = 57 }, new WeightedItemResult { Id = 3, Weight = 1 } }); var results = sut.SearchFor(new SearchQuery <Customer>(searchTerm)).ToList(); results.Count.ShouldBe(2); var firstResult = results.First(); firstResult.Id.ShouldBe(3); firstResult.Weight.ShouldBe(58); firstResult.Item.ShouldBeNull(); var secondResult = results.Last(); secondResult.Id.ShouldBe(1); secondResult.Weight.ShouldBe(12); secondResult.Item.ShouldBeNull(); }
/// <summary> /// Starts the search for new messages /// </summary> public void Start() { IFolder[] folders = _client.MailboxManager.GetAllFolders(); List <IMessage> newMessages = new List <IMessage>(); int folderCount = 0; foreach (IFolder folder in folders) { _client.RequestManager.SubmitRequest(new SearchRequest(folder, _criteria, delegate(IRequest req) { SearchProcessor sp = req.GetProcessorAsType <SearchProcessor>(); newMessages.AddRange(sp.Messages); folderCount++; }), false); } while (folderCount < folders.Length) { Thread.Sleep(1); } }
private static string GetValueFromDB(ref KeePassLib.PwDatabase pdb, string searchString = "") { if (string.IsNullOrWhiteSpace(searchString)) { throw new ArgumentException("Search String Cannot be blank"); } SearchProcessor processor = new SearchProcessor(); processor.Database = pdb; //byte[] keyBytes = System.Text.Encoding.Default.GetBytes(key); //new []{ System.Text.EncodingInfo} //Guid i = Guid.Parse(key); //var pwUuID = new PwUuid(i.ToByteArray()); //SearchParameters sp = new SearchParameters(); //sp.SearchInStringNames = true; //sp.SearchString = searchString; //PwObjectList<PwEntry> pwl = new PwObjectList<PwEntry>(); //pdb.RootGroup.SearchEntries(sp, pwl); PwObjectList <PwEntry> pwl = processor.GetListOfEntriesBySearchByString(searchString); System.Diagnostics.Debug.WriteLine($"Entries Found: {pwl.Count()}"); string k = string.Empty; foreach (var entry in pwl.CloneShallowToList()) { foreach (var l in entry.Strings.ToList()) { if (l.Key == "Password") { k = l.Value.ReadString(); } } } return(k); }
static HomeController() { searchProcessor = new SearchProcessor(new RestSearchController()); }
public List <UserModel> SearchUserByUsername(string username) { return(SearchProcessor.SearchByUsername(username)); }
public void SearchTest() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); try { var options = new DbContextOptionsBuilder <AppDbContext>() .UseSqlite(connection) .Options; AppDbContextTest.SeedTestDataToDbAndTest(options); using (var appDbContext = new AppDbContext(options)) { var logger = Mock.Of <ILogger <SearchProcessor> >(); var bingMoq = new Mock <ISearchEngine>(); bingMoq.Setup(x => x.Name).Returns("Bing"); bingMoq.Setup(x => x.Search("cat")).Returns(new List <Url> { new Url() { UrlString = "cat.com" }, new Url() { UrlString = "cat.net" }, new Url() { UrlString = "cat.io" }, }); var googleMoq = new Mock <ISearchEngine>(); googleMoq.Setup(x => x.Name).Returns("Google"); googleMoq.Setup(x => x.Search("cat")).Returns(new List <Url> { new Url() { UrlString = "cat.com" }, new Url() { UrlString = "cat.net" }, new Url() { UrlString = "cat.ru" }, }); var repo = new EfRepository(appDbContext); var processor = new SearchProcessor(new[] { bingMoq.Object, googleMoq.Object }, repo, logger); Assert.Equal(1, processor.Search("cat", true).UrlSearchResults.Count); var result1 = processor.Search("cat", false); Assert.Equal(4, processor.Search("cat", true).UrlSearchResults.Count); Assert.Equal(2, processor.Search("cat", true).UrlSearchResults.First().UrlSearchResultSearchEngines.Count); Assert.Equal(1, processor.Search("cat", true).UrlSearchResults.Last().UrlSearchResultSearchEngines.Count); } } finally { connection.Close(); } }
public async void SearchButton() { var products = await SearchProcessor.SearchByEuclidean(Price, selectedItemsType).ConfigureAwait(true); (Parent as dynamic).ActivateItem(new ProductViewModel(products)); }
public void ProvidesExceptionWhenNoCollectors() { var sut = new SearchProcessor(); Assert.Throws <InvalidOperationException>(() => sut.SearchFor(new SearchQuery <Customer>("foobar"))); }