Exemplo n.º 1
0
        /// <summary>
        /// Parser of graph (entity member / entity-info-service) style requests.
        /// </summary>
        /// <param name="request">The request</param>
        /// <param name="settings">Parse settings.</param>
        /// <returns>Request object model.</returns>
        public EntityMemberRequest ParseRequestQuery(string request, RequestParserSettings settings = null)
        {
            settings = settings ?? RequestParserSettings.Default;

            _variables = new Dictionary <string, List <Term> >();

            // Prepare tokenizer
            _tokens = new Tokenizer(request);
            _tokens.MoveNext();

            // Parse
            List <Term> result = null;

            Expect(ParseTermList(ref result), TermDescription);
            Expect(_tokens.Current.Type == TokenType.AtEnd, "end");

            // Convert parse tree to EntityMemberRequest structure
            var decorator = new TermDecorator(EntityRepository);

            decorator.Variables = _variables;
            EntityMemberRequest entityMemberRequest = decorator.ConvertToRequest(result, settings.Validate);

            entityMemberRequest.RequestString = request;
            return(entityMemberRequest);
        }
Exemplo n.º 2
0
        public static EntityMemberRequest BuildRequest(string requestText, RequestParserSettings settings = null)
        {
            var requestObject = Factory.RequestParser.ParseRequestQuery(requestText, settings);

            return(requestObject);
        }