Ejemplo n.º 1
0
        public static SearchQueryResponse GetSearchQuery(string searchString)
        {
            string rawJSON = GetRawResponse(searchString);

            if (!String.IsNullOrEmpty(rawJSON))
            {
                LUISResponse luisResp = JsonConvert.DeserializeObject <LUISResponse>(rawJSON);

                SearchQueryResponse resp = new SearchQueryResponse();
                resp.RawJSON     = rawJSON;
                resp.SearchQuery = getSearchQuery(luisResp);

                return(resp);
            }

            return(new SearchQueryResponse());
        }
Ejemplo n.º 2
0
        private static string getSearchQuery(LUISResponse luisResp)
        {
            string sql = "";

            if (luisResp != null)
            {
                foreach (var item in luisResp.entities)
                {
                    switch (item.type)
                    {
                    case "builtin.datetimeV2.daterange":
                        if (item.resolution.values.Length > 0)
                        {
                            string endDate = String.IsNullOrEmpty(item.resolution.values[0].end) ? DateTime.Now.ToString("yyyy-MM-dd") : item.resolution.values[0].end;
                            sql = appendString(sql, string.Format("orderdate between '{0}' and '{1}'", item.resolution.values[0].start, endDate));
                        }
                        break;

                    case "builtin.datetimeV2.date":
                        if (item.resolution.values.Length > 0)
                        {
                            sql = appendString(sql, string.Format("orderdate between '{0}' and '{1}'", item.resolution.values[0].value, item.resolution.values[0].value));
                        }
                        break;

                    case "company_name":
                        if (!string.IsNullOrEmpty(item.entity))
                        {
                            sql = appendString(sql, string.Format("lower(shipname) like '%{0}%'", item.entity));
                        }
                        break;

                    case "user":
                        if (!string.IsNullOrEmpty(item.entity))
                        {
                            sql = appendString(sql, string.Format("lower(u.firstname) like '%{0}%' or lower(u.lastname) like '%{0}%'", item.entity));
                        }
                        break;
                    }
                }
            }

            return(sql);
        }