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();
        }
Example #2
0
        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";
        }
Example #4
0
        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());
            }
        }
Example #5
0
    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);
        }
    }
Example #6
0
 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();
 }
Example #7
0
        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();
        }
Example #8
0
 /// <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);
 }
Example #9
0
 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]);
                        }
                    }
                }
            }
        }
Example #13
0
        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();
        }
Example #16
0
        /// <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);
        }
Example #18
0
 static HomeController()
 {
     searchProcessor = new SearchProcessor(new RestSearchController());
 }
 public List <UserModel> SearchUserByUsername(string username)
 {
     return(SearchProcessor.SearchByUsername(username));
 }
Example #20
0
        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")));
        }