コード例 #1
0
        private ApiResponse DoAutoComplete(AutoCompleteQuery query)
        {
            query = query ?? new AutoCompleteQuery()
            {
                SearchType = "credential"
            };

            try
            {
                //HttpContext.Current.Response.Clear();
                //HttpContext.Current.Response.BufferOutput = true;
                //HttpContext.Current.Response.AppendHeader( "Access-Control-Allow-Origin", "*" );
                //string contentType = "application/json";
                //HttpContext.Current.Response.ContentType = contentType;
                //HttpContext.Current.Response.ContentEncoding = contentType == "application/json" ? Encoding.UTF8 : HttpContext.Current.Response.ContentEncoding;

                var results = SearchServices.DoAutoComplete(query.SearchType, query.FilterURI, query.Text, query.WidgetId);
                var acr     = new AutoCompleteResponse();
                acr.Items = results.Select(m => new FilterItem()
                {
                    Label = m.ToString(), Text = m.ToString(), URI = query.FilterURI, InterfaceType = "interfaceType:Text"
                }).ToList();
                return(new ApiResponse(acr, true, null));
            }
            catch (Exception ex)
            {
                return(new ApiResponse(null, false, new List <string>()
                {
                    "Error processing autocomplete request: " + ex.Message
                }));
            }
        }
コード例 #2
0
        private string BuildCompletion(AutoCompleteResponse completion)
        {
            string result = completion.Snippet;

            if (completion.ReturnType != null)
            {
                result += " : " + completion.ReturnType;
            }
            return(result);
        }
コード例 #3
0
        private AutoCompleteResponse MakeAutoCompleteResponse(ISymbol symbol)
        {
            var response = new AutoCompleteResponse();

            response.CompletionText = symbol.Name;
            // TODO: Do something more intelligent here
            response.DisplayText = symbol.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);

            return(response);
        }
コード例 #4
0
        internal static void Test()
        {
            Console.WriteLine("Facets inside the hints");
            DataContractJsonSerializer dcjs = new DataContractJsonSerializer(typeof(AutoCompleteResponse));
            MemoryStream         ms         = new MemoryStream(Encoding.Unicode.GetBytes(json));
            AutoCompleteResponse obj        = (AutoCompleteResponse)dcjs.ReadObject(ms);

            ms.Close();
            Console.WriteLine(obj);
            Console.WriteLine();
        }
コード例 #5
0
        AutoCompleteResponse IAutoCompleteFactory.AutoCompleteResult(AutoCompleteDomain autoCompleteDomain)
        {
            AutoCompleteResponse autoCompleteResponse = new AutoCompleteResponse();

            try
            {
                using (sqlConnection = new SqlConnection(DbConnection.connectionString))
                {
                    sqlConnection.Open();
                    SqlCommand sqlCommand = new SqlCommand("[dbo].[AutoComplete]", sqlConnection)
                    {
                        CommandType = CommandType.StoredProcedure
                    };

                    sqlCommand.Parameters.AddRange(new[]
                    {
                        new SqlParameter("@Id", autoCompleteDomain.Id),
                        new SqlParameter("@Value", autoCompleteDomain.value),
                        new SqlParameter("@Label", autoCompleteDomain.label),
                        new SqlParameter("@ParentCd", autoCompleteDomain.ParentCd),
                        new SqlParameter("@Type", autoCompleteDomain.type),
                    });
                    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
                    DataSet        dataSet        = new DataSet();
                    sqlDataAdapter.SelectCommand = sqlCommand;
                    sqlDataAdapter.Fill(dataSet);
                    if (dataSet != null && dataSet.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow dataRow in dataSet.Tables[0].Rows)
                        {
                            autoCompleteResponse.autoCompleteResults.Add(new AutoCompleteDomain()
                            {
                                Id       = Convert.ToInt32(dataRow["Id"]),
                                Name     = autoCompleteDomain.Name,
                                Desc     = autoCompleteDomain.Desc,
                                label    = Convert.ToString(dataRow["label"]),
                                Cd       = Convert.ToString(dataRow["Cd"]),
                                value    = Convert.ToString(dataRow["value"]),
                                type     = autoCompleteDomain.type,
                                ParentCd = autoCompleteDomain.ParentCd,
                            });
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(autoCompleteResponse);
        }
コード例 #6
0
        private AutoCompleteResponse MakeAutoCompleteResponse(AutoCompleteRequest request, ISymbol symbol, bool includeOptionalParams = true)
        {
            var displayNameGenerator = new SnippetGenerator();

            displayNameGenerator.IncludeMarkers            = false;
            displayNameGenerator.IncludeOptionalParameters = includeOptionalParams;

            var response = new AutoCompleteResponse();

            response.CompletionText = symbol.Name;

            // TODO: Do something more intelligent here
            response.DisplayText = displayNameGenerator.Generate(symbol);

            if (request.WantDocumentationForEveryCompletionResult)
            {
                response.Description = DocumentationConverter.ConvertDocumentation(symbol.GetDocumentationCommentXml(), _options.FormattingOptions.NewLine);
            }

            if (request.WantReturnType)
            {
                response.ReturnType = ReturnTypeFormatter.GetReturnType(symbol);
            }

            if (request.WantKind)
            {
                response.Kind = symbol.GetKind();
            }

            if (request.WantSnippet)
            {
                var snippetGenerator = new SnippetGenerator();
                snippetGenerator.IncludeMarkers            = true;
                snippetGenerator.IncludeOptionalParameters = includeOptionalParams;
                response.Snippet = snippetGenerator.Generate(symbol);
            }

            if (request.WantMethodHeader)
            {
                response.MethodHeader = displayNameGenerator.Generate(symbol);
            }

            return(response);
        }
コード例 #7
0
        public async Task <IActionResult> Search(string symbol)
        {
            AutoCompleteResponse response = await _YahooFinanceClient.Search(symbol);

            List <InstrumentSearchResult> results = new List <InstrumentSearchResult>();

            foreach (AutoCompleteResult result in response.ResultSet.Result)
            {
                InstrumentSearchResult r = new InstrumentSearchResult();
                r.Exchange = result.Exch;
                r.Symbol   = result.Symbol;
                r.Type     = MapType(result.Type);
                r.Name     = result.Name;

                results.Add(r);
            }

            return(Ok(results.ToArray()));
        }
コード例 #8
0
        private AutoCompleteResponse MakeAutoCompleteResponse(AutoCompleteRequest request, ISymbol symbol, bool includeOptionalParams = true)
        {
            var response = new AutoCompleteResponse();

            response.CompletionText = symbol.Name;

            // TODO: Do something more intelligent here
            response.DisplayText = symbol.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);

            if (request.WantDocumentationForEveryCompletionResult)
            {
                response.Description = symbol.GetDocumentationCommentXml();
            }

            if (request.WantReturnType)
            {
                response.ReturnType = ReturnTypeFormatter.GetReturnType(symbol);
            }

            if (request.WantSnippet)
            {
                var snippetGenerator = new SnippetGenerator();
                snippetGenerator.IncludeMarkers            = true;
                snippetGenerator.IncludeOptionalParameters = includeOptionalParams;
                response.Snippet = snippetGenerator.GenerateSnippet(symbol);
            }

            if (request.WantMethodHeader)
            {
                var snippetGenerator = new SnippetGenerator();
                snippetGenerator.IncludeMarkers            = false;
                snippetGenerator.IncludeOptionalParameters = includeOptionalParams;
                response.MethodHeader = snippetGenerator.GenerateSnippet(symbol);
            }

            return(response);
        }
コード例 #9
0
        public async Task <AutoCompleteResponse> Search(string query)
        {
            HttpRequestMessage request = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri($"https://yfapi.net/v6/finance/autocomplete?lang=en&query={query}"),
                Headers    =
                {
                    { "x-api-key", _Configuration.GetValue <string>("financeapi-key") },
                },
            };


            using (HttpResponseMessage response = await _Client.SendAsync(request))
            {
                response.EnsureSuccessStatusCode();

                string json = await response.Content.ReadAsStringAsync();

                AutoCompleteResponse autoCompleteResponse = JsonConvert.DeserializeObject <AutoCompleteResponse>(json);

                return(autoCompleteResponse);
            }
        }