/// <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); }
public static EntityMemberRequest BuildRequest(string requestText, RequestParserSettings settings = null) { var requestObject = Factory.RequestParser.ParseRequestQuery(requestText, settings); return(requestObject); }