예제 #1
0
        private List <QueryResult> SendPairQuery(PairQuery query)
        {
            string url = DefinePairSearchPath(query.Type);

            WebRequest request = WebRequest.Create(url);

            request.Method = "POST";

            string postData = JsonConvert.SerializeObject(query);

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            request.ContentType   = "application/json";
            request.ContentLength = byteArray.Length;

            using (Stream dataStream = request.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);
            }

            WebResponse response = request.GetResponse();
            string      result;

            using (Stream dataStream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(dataStream);
                result = reader.ReadToEnd();
            }

            response.Close();

            return(ParseResponse(result));
        }
예제 #2
0
        private Query TranslatePairQuery(IntermediateQuery intQuery)
        {
            var pairQuery = new PairQuery();

            if (IsLemmaQuery(intQuery))
            {
                pairQuery.Type     = PairQueryType.LemmaPair;
                pairQuery.First    = intQuery.Tokens[0].SemanticParameters[0];
                pairQuery.Second   = intQuery.Tokens[1].SemanticParameters[0];
                pairQuery.MinRange = intQuery.Tokens[1].MinRange;
                pairQuery.MaxRange = intQuery.Tokens[1].MaxRange;
            }
            else
            {
                pairQuery.Type     = PairQueryType.TagPair;
                pairQuery.First    = intQuery.Tokens[0].GrammarParameters[0];
                pairQuery.Second   = intQuery.Tokens[1].GrammarParameters[0];
                pairQuery.MinRange = intQuery.Tokens[1].MinRange;
                pairQuery.MaxRange = intQuery.Tokens[1].MaxRange;
            }
            return(pairQuery);
        }