Ejemplo n.º 1
0
    public string CitySuggest(string tryValue, string[] additionalParams)
    {
        List <SuggestionItem> items   = new List <SuggestionItem>();
        List <string>         surname = new List <string>();
        FAbonent        fa            = new FAbonent();
        FAbonentDO      fado          = new FAbonentDO();
        UniversalEntity ue            = new UniversalEntity();

        ue = fado.RetrieveLikeSurname(tryValue);
        if (ue.Count > 0)
        {
            for (int i = 0; i < ue.Count; i++)
            {
                fa = (FAbonent)ue[i];
                //create SuggestionItem
                SuggestionItem suggestionItem = new SuggestionItem();
                suggestionItem.Title       = fa.Surname;
                suggestionItem.Description = SuggestionTools.HighLight(fa.FirstName + " " + fa.LastName, tryValue) + fa.ID.ToString();
                suggestionItem.Id          = fa.ID.ToString();
                //add item to the list
                items.Add(suggestionItem);
            }
        }
        //create result Item
        SuggestionResult suggestionResult = new SuggestionResult();

        suggestionResult.Items  = items.ToArray();
        suggestionResult.Header = new BasicSuggestionTemplate("Please select your city.");
        suggestionResult.Footer = new BasicSuggestionTemplate("Powered by ConvincingMail");
        return(suggestionResult.ToJSON(tryValue));
    }
Ejemplo n.º 2
0
        private static void Write(Document doc, SuggestionResult result)
        {
            if (result == null)
            {
                return;
            }
            var sec = doc.Sections.Last;
            var par = (Paragraph)null;
            var tun = (Textrun)null;

            //var hyp = (Hyperlink)null;

            par = sec.AddParagraph();
            par.Style.Spacings.SpacingAfter = 15F;
            tun = par.AddTextrun(RtfUtility.unicodeEncode("Suggestions Result"));
            tun.Style.FontSize  = 24F;
            tun.Style.TextColor = PrimaryColor;

            par = sec.AddParagraph();
            tun = par.AddTextrun(RtfUtility.unicodeEncode("SUGGESTIONS"));
            tun.Style.FontStyle.Bold = true;

            int count = 1;

            foreach (var suggest in result.Suggestions)
            {
                par = sec.AddParagraph(RtfUtility.unicodeEncode(string.Format("{0}. {1}", count, SynUtility.Text.UppercaseFirstLetter(suggest))));
                count++;
            }

            sec.AddParagraph();
        }
Ejemplo n.º 3
0
        public IQueryResultItem Search(InputQuery query)
        {
            SuggestionResult finalResult = new SuggestionResult();

            finalResult.SuggestionType = SuggestionType.Baidu;
            Encoding gb2312 = Encoding.GetEncoding("gb2312");
            Encoding utf8   = Encoding.UTF8;

            string url = "http://suggestion.baidu.com/su?wd=" + HttpUtility.UrlEncode(query.Text, gb2312) + "&action=opensearch&ie=gb2312&from=ie8";

            finalResult.SearchUrl = url;

            if (query == null || query.QueryType != SmartMe.Core.Data.InputQueryType.Text || query.Text == null || query.Text == "")
            {
                return(finalResult);
            }

            string html = SmartMe.Web.Crawl.Crawler.Crawl(url, gb2312);

            if (html == null || html == "")
            {
                return(finalResult);
            }

            Regex  p          = new Regex("\\[.+\\]");
            string jsonResult = p.Match(html).Value;

            if (jsonResult == null || jsonResult == string.Empty)
            {
                return(finalResult);
            }
            DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(object));

            object rawResults = jsonSerializer.ReadObject(new MemoryStream(Encoding.Convert(gb2312, utf8, gb2312.GetBytes(jsonResult))));

            if (rawResults != null)
            {
                object[] preResults = rawResults as object[];
                if (preResults != null && preResults.Length == 2)
                {
                    object[] results = preResults[1] as object[];
                    if (results != null && results.Length > 0)
                    {
                        for (int i = 0; i < results.Length; ++i)
                        {
                            SuggestionResult.ResultItem item = new SuggestionResult.ResultItem();
                            string temp = results[i] as string;
                            if (temp != null)
                            {
                                item.Suggestion = temp;
                                //Console.WriteLine( temp );
                                finalResult.Results.Add(item);
                            }
                        }
                    }
                }
            }
            return(finalResult);
        }
        /// <summary>
        /// Attempts to find translation suggestions based the specified options in SuggestionRequest object.
        /// </summary>
        /// <param name="request">Suggestion Parameters</param>
        /// <returns>A list of suggestion result</returns>
        public SuggestionResult[] Suggest(SuggestionRequest request)
        {
            Logger.Log($"SYSTRAN8TranslationProvider Suggest start request:{request.Source} source:{mSelectedLanguagePair?.Source} target:{mSelectedLanguagePair?.Target}");
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (string.IsNullOrWhiteSpace(request.Source))
            {
                throw new ArgumentException("SuggestionRequest.Source");
            }
            if (mSelectedLanguagePair == null)
            {
                throw new InvalidProviderConfigurationException("No language pait selected");
            }
            if (mSupportedLanguagePairs == null)
            {
                throw new InvalidProviderConfigurationException("supported language pairs has not been initialized");
            }

            var suggestResult = new SuggestionResult
            {
                RequestId        = request.RequestId,
                Source           = request.Source,
                ProviderName     = Localizable.ProviderDisplayName,
                TranslationState = new TranslationState {
                    State = TransState.NoMatch, SubState = "no match found"
                },
                TranslationType = new TranslationType {
                    Type = TransType.MachineTranslation
                }
            };

            try
            {
                var target = mService.TranslateAsync(mSelectedLanguagePair.Source, mSelectedLanguagePair.Target, null, request.Source).ConfigureAwait().Result;

                suggestResult.Target           = target;
                suggestResult.TranslationState = new TranslationState {
                    State = TransState.NeedsReview
                };
                suggestResult.Confidence = 100;
                //suggestResult.Properties = GetMetadata(trans);
            }
            catch (Exception exception)
            {
                suggestResult.TranslationState = new TranslationState {
                    State = TransState.Fail
                };
                suggestResult.Errors.Add(new ProviderErrorLog()
                {
                    Category = ErrorCategory.Translation, InnerException = exception, Severity = ErrorSeverity.Error
                });
            }
            Logger.Log($"SYSTRAN8TranslationProvider Suggest end request:{request.Source} source:{mSelectedLanguagePair?.Source} target:{mSelectedLanguagePair?.Target} result:{suggestResult?.Target}");
            return(new[] { suggestResult });
        }
Ejemplo n.º 5
0
        public static void Test( )
        {
            GoogleSuggestion engine = new GoogleSuggestion();
            InputQuery       query  = new InputQuery("baim");

            query.QueryType = InputQueryType.Text;
            SuggestionResult item = engine.Search(query) as SuggestionResult;

            Console.WriteLine(item);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Queries the provider for matching translation suggestions
        /// </summary>
        /// <param name="srcCulture">Culture of the requested string</param>
        /// <param name="trgCulture">Culture of the resulting strings</param>
        /// <param name="srcString">String to translate</param>
        /// <param name="maxResults">Maximum allowed results</param>
        /// <returns>Zero to maxResult of SuggestionResult[]</returns>
        /// <remarks>
        /// Multiple results are returned, so this filters it down to the maximum allows results.
        /// </remarks>
        internal static SuggestionResult[] GetSegmentSuggestions(CultureInfo srcCulture, CultureInfo trgCulture, string srcString, int maxResults)
        {
            var encodedSource = srcString.Replace(' ', '+');
            var urlString     = string.Format("https://www.tausdata.org/api/segment.xml?source_lang={0}&target_lang={1}&q={2}&fuzzy=false", srcCulture.Name, trgCulture.Name, encodedSource);

            var httpRequest = (HttpWebRequest)WebRequest.Create(urlString);

            httpRequest.Credentials = CredCache;

            // Set default result
            var suggestResults = new List <SuggestionResult>();

            // Read the contents of the response and load it into an XDocument
            var docResponse = GetXmlFormatResponse(httpRequest);

            if (docResponse != null)
            {
                foreach (var trans in docResponse.Descendants("segment"))
                {
                    var source = trans.Element("source").Value;
                    var target = trans.Element("target").Value;

                    var suggestResult = new SuggestionResult()
                    {
                        Source           = source,
                        Target           = target,
                        ProviderName     = l10n.ProviderDisplayName,
                        TranslationState = new TranslationState()
                        {
                            State = TransState.NeedsReview
                        },
                        TranslationType = new TranslationType()
                        {
                            Type = TransType.TranslationMemory
                        }
                    };

                    suggestResult.Confidence = CalculateConfidence(srcString, suggestResult.Source);
                    suggestResult.Properties = GetMetadata(trans);
                    suggestResults.Add(suggestResult);
                    if (suggestResults.Count >= maxResults)
                    {
                        break;
                    }
                }
            }

            // The code assumes the result are in best to worst matching order.
            var sortedResults = suggestResults.ToArray();

            Array.Sort(sortedResults, new SuggestionConfidenceComparer());
            return(sortedResults);
        }
Ejemplo n.º 7
0
        public SuggestionResult Suggestions(IndexQueryServerSide query, SuggestionField field, JsonOperationContext documentsContext, CancellationToken token)
        {
            var options = field.GetOptions(documentsContext, query.QueryParameters) ?? new SuggestionOptions();
            var terms   = field.GetTerms(documentsContext, query.QueryParameters);

            var result = new SuggestionResult
            {
                Name = field.Alias ?? field.Name
            };

            result.Suggestions.AddRange(terms.Count > 1
                ? QueryOverMultipleWords(field, terms, options)
                : QueryOverSingleWord(field, terms[0], options));

            return(result);
        }
        public void SuggestionsTest(string searchTerm, string expectation)
        {
            //Setup Fakes & dummies
            var serviceFake             = A.Fake <ISearchQueryService <JobProfileIndex> >(ops => ops.Strict());
            var loggerFake              = A.Fake <IApplicationLogger>();
            var spellcheckerServiceFake = A.Fake <ISpellcheckService>(ops => ops.Strict());
            var fakeAsyncHelper         = new AsyncHelper();
            var webAppContext           = A.Fake <IWebAppContext>(ops => ops.Strict());
            var mapperCfg = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <JobProfilesAutoMapperProfile>();
            });

            var dummySuggestResult = new SuggestionResult <JobProfileIndex>();

            dummySuggestResult.Results = new List <SuggestionResultItem <JobProfileIndex> >
            {
                new SuggestionResultItem <JobProfileIndex> {
                    MatchedSuggestion = expectation.ToLower()
                }
            };

            //Set-up calls
            A.CallTo(() => serviceFake.GetSuggestion(A <string> ._, A <SuggestProperties> ._)).Returns(dummySuggestResult);

            //Instantiate
            var searchController = new JobProfileSearchBoxController(serviceFake, webAppContext, mapperCfg.CreateMapper(), loggerFake, fakeAsyncHelper, spellcheckerServiceFake);

            var result = searchController.WithCallTo(c => c.Suggestions(searchTerm, 5, true));

            if (string.IsNullOrWhiteSpace(searchTerm))
            {
                result.ShouldReturnEmptyResult();
                A.CallTo(() => serviceFake.GetSuggestion(A <string> ._, A <SuggestProperties> ._)).MustNotHaveHappened();
            }
            else
            {
                result.ShouldReturnJson(json =>
                {
                    var suggestions = json as IEnumerable <Suggestion>;
                    suggestions.First().label.Should().Be(expectation);
                });
                A.CallTo(() => serviceFake.GetSuggestion(A <string> .That.Matches(m => m == searchTerm), A <SuggestProperties> ._))
                .MustHaveHappened(Repeated.Exactly.Once);
            }
        }
Ejemplo n.º 9
0
        public void WhenITypeTheTerm(string suggestionTerm)
        {
            OutputHelper.WriteLine($"The suggestion term is '{suggestionTerm}'");
            try
            {
                results = searchQueryService.GetSuggestion(
                    suggestionTerm,
                    new SuggestProperties {
                    UseFuzzyMatching = true, MaxResultCount = 5
                });
            }
            catch (Exception ex)
            {
                OutputHelper.WriteLine($"Exception in When:- {ex}");
            }

            //Log results
            var actual = results?.Results.Select(r => r.Index);

            OutputHelper.WriteLine($"Actual order {actual?.ToJson()}");
        }
Ejemplo n.º 10
0
        public static void Test()
        {
            QueryResultRecordManager manager = new QueryResultRecordManager("data", new TimeSpan(0, 1, 0));

            Pipeline.Pipeline pipeline = new Pipeline.Pipeline();
            pipeline.QueryResultSubscriberManager.AddSubscriber(manager);

            QueryResult        result     = new QueryResult(new InputQuery("Bill Gates"));
            SearchEngineResult resultItem = new SearchEngineResult();

            resultItem.SearchEngineType = SearchEngineType.Google;
            resultItem.SearchUrl        = "http://www.google.com/query.jsp";
            SearchEngineResult.ResultItem item = new SearchEngineResult.ResultItem();
            item.Title       = "ddd";
            item.Url         = "http://www.gfw.com/";
            item.SimilarUrl  = "http://www.g.com/ddd";
            item.CacheUrl    = "http://www.g.com/cache";
            item.Description = "Who cares?";
            resultItem.Results.Add(item);

            SuggestionResult resultItem1 = new SuggestionResult();

            resultItem1.SuggestionType = SuggestionType.Google;
            resultItem1.SearchUrl      = "json";
            SuggestionResult.ResultItem item1 = new SuggestionResult.ResultItem();
            item1.Index      = "1";
            item1.Number     = "2";
            item1.Suggestion = "haha";
            resultItem1.Results.Add(item1);

            result.SearchEngineResultItems.Add(resultItem);
            result.SuggestionResultItems.Add(resultItem1);

            pipeline.OnQueryResultReady(result);

            Thread.Sleep(1000);

            List <QueryResult> resultList = manager.GetResultList(DateTime.Today, DateTime.Today);

            foreach (QueryResult queryResult in resultList)
            {
                Console.WriteLine(queryResult);
            }
            Console.WriteLine("----------------------------------------------");

            manager.RemoveAllResultList();

            resultList = manager.GetResultList(DateTime.Today, DateTime.Today);
            foreach (QueryResult queryResult in resultList)
            {
                Console.WriteLine(queryResult);
            }

            Console.WriteLine("----------------------------------------------");

            result     = new QueryResult(new InputQuery("Bill Gates"));
            resultItem = new SearchEngineResult();
            resultItem.SearchEngineType = SearchEngineType.Google;
            resultItem.SearchUrl        = "http://www.google.com/query.jsp";
            item             = new SearchEngineResult.ResultItem();
            item.Title       = "ddd";
            item.Url         = "http://www.gfw.com/";
            item.SimilarUrl  = "http://www.g.com/ddd";
            item.CacheUrl    = "http://www.g.com/cache";
            item.Description = "Who cares?";
            resultItem.Results.Add(item);

            result.Items.Add(resultItem);

            pipeline.OnQueryResultReady(result);

            Thread.Sleep(1000);

            manager.RemoveResultListFromDate(DateTime.Today);
            resultList = manager.GetResultList(DateTime.Today - new TimeSpan(1, 0, 0, 0), DateTime.Today);
            foreach (QueryResult queryResult in resultList)
            {
                Console.WriteLine(queryResult);
            }

            Console.WriteLine("----------------------------------------------");

            manager.RemoveResultListFromDate(DateTime.Today + new TimeSpan(1, 0, 0, 0));
            resultList = manager.GetResultList(DateTime.Today - new TimeSpan(1, 0, 0, 0), DateTime.Today);
            foreach (QueryResult queryResult in resultList)
            {
                Console.WriteLine(queryResult);
            }

            Console.WriteLine("----------------------------------------------");
        }
Ejemplo n.º 11
0
        public IQueryResultItem Search(InputQuery query)
        {
            SuggestionResult finalResult = new SuggestionResult();

            finalResult.SuggestionType = SuggestionType.Google;
            string url = "http://suggestqueries.google.cn/complete/search?q=" + HttpUtility.UrlEncode(query.Text, Encoding.UTF8);

            finalResult.SearchUrl = url;

            if (query == null || query.QueryType != SmartMe.Core.Data.InputQueryType.Text || query.Text == null || query.Text == "")
            {
                return(finalResult);
            }

            string html = SmartMe.Web.Crawl.Crawler.Crawl(url, Encoding.UTF8);

            if (html == null || html == "")
            {
                return(finalResult);
            }

            Regex  p          = new Regex("\\[.+\\]");
            string jsonResult = p.Match(html).Value;

            if (jsonResult == null || jsonResult == string.Empty)
            {
                return(finalResult);
            }

            DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(object));



            object rawResults = jsonSerializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(jsonResult)));



            if (rawResults != null)
            {
                object[] tmpResults = rawResults as object[];
                if (tmpResults != null && tmpResults.Length == 2)
                {
                    object[] results = tmpResults[1] as object[];
                    if (results != null && results.Length > 0)
                    {
                        for (int i = 0; i < results.Length; ++i)
                        {
                            bool success = true;
                            SuggestionResult.ResultItem item = new SuggestionResult.ResultItem();
                            object[] triple = results[i] as object[];
                            if (triple != null && triple.Length == 3)
                            {
                                string temp = triple[0] as string;
                                if (temp != null)
                                {
                                    item.Suggestion = temp;
                                }
                                else
                                {
                                    success = false;
                                }
                                temp = triple[1] as string;
                                if (temp != null)
                                {
                                    item.Number = temp;
                                }
                                else
                                {
                                    success = false;
                                }
                                temp = triple[2] as string;
                                if (temp != null)
                                {
                                    item.Index = temp;
                                }
                                else
                                {
                                    success = false;
                                }
                                if (success)
                                {
                                    finalResult.Results.Add(item);
                                }
                            }
                        }
                    }
                }
            }
            return(finalResult);
        }
Ejemplo n.º 12
0
        public static void WriteSuggestionResult(this BlittableJsonTextWriter writer, JsonOperationContext context, SuggestionResult result)
        {
            writer.WriteStartObject();

            writer.WritePropertyName(nameof(result.Name));
            writer.WriteString(result.Name);
            writer.WriteComma();

            writer.WriteArray(nameof(result.Suggestions), result.Suggestions);

            writer.WriteEndObject();
        }