public string MainSearch(MainSearchInput query)
        {
            //DateTime start = DateTime.Now;
            //LoggingHelper.DoTrace( 6, string.Format( "$$$$SearchController.MainSearch === Started: " ) );
            if (Request.Params["useSql"] == "true")
            {
                //query.useSql = true;
                //query.useElastic = false;
            }

            //if ( Request.Params["elastic"] == "true" ) query.ElasticSearch = true;


            var results = searchService.MainSearch(query, ref valid, ref status);

            //TimeSpan timeDifference = start.Subtract( DateTime.Now );
            //LoggingHelper.DoTrace( 6, string.Format( "$$$$SearchController.MainSearch === Ended - Elapsed: {0}", timeDifference.TotalSeconds ) );

            //Use a different return structure here because the default serialization method screws up the internal JObjects/JArrays/etc
            var finalResult = JObject.FromObject(new { data = results, valid = valid, status = status });

            Response.ContentType     = "application/json";
            Response.ContentEncoding = Encoding.UTF8;
            return(finalResult.ToString());
        }
Пример #2
0
        public ApiResponse Search(MainQuery query)
        {
            var debug = new JObject();

            try
            {
                var translatedQuery   = API.SearchServices.TranslateMainQueryToMainSearchInput(query);
                var results           = searchService.MainSearch(translatedQuery, ref valid, ref status, debug);
                var translatedResults = API.SearchServices.TranslateMainSearchResultsToAPIResults(results, debug);
                return(new ApiResponse(translatedResults, true, null));
            }
            catch (Exception ex)
            {
                LoggingHelper.LogError(ex, "CredentialFinderWebAPI.Search. " + ex.Message + "\n\n" + debug.ToString());
                return(new ApiResponse(debug, false, new List <string>()
                {
                    string.Format("Error encountered returning data. {0} ", ex.Message), "See debug object for details."
                }));
            }
        }