Exemplo n.º 1
0
        private QueryValueCollection getValues(string queryName)
        {
            QueryValueCollection values = new QueryValueCollection();

            RelationCollection rels = new RelationCollection(QueryValueEntity.Relations.QueryEntityUsingQueryId);

            rels.Add(QueryValueEntity.Relations.AttributeEntityUsingAttributeId);
            rels.Add(AttributeEntity.Relations.ContextEntityUsingContextId);

            PredicateExpression pe = new PredicateExpression(QueryValueFields.QueryId == Query.Id);

            pe.Add(ContextFields.Name == queryName);

            values.GetMulti(pe, rels);

            return(values);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Navigates to the specified URI, resolving the first matching route.
        /// </summary>
        /// <param name="requestUri">The request URI.</param>
        /// <param name="additionalData">Additional data (like post data) that is not in the URI but is used
        /// for navigation.</param>
        private void ExecuteRequestWithUri(Uri requestUri, RouteValueDictionary additionalData)
        {
            additionalData = additionalData ?? new RouteValueDictionary();
            var path        = requestUri.GetComponents(UriComponents.Host | UriComponents.Path, UriFormat.Unescaped);
            var queryString = requestUri.GetComponents(UriComponents.Query, UriFormat.Unescaped);

            var route = routes.MatchPathToRoute(path);

            if (!route.Success)
            {
                throw new UnroutableRequestException(string.Format("The request URI '{0}' could not be routed. {1}{2}", requestUri, Environment.NewLine, route.FailReason));
            }

            // Create a value dictionary with all of the known information - post data, query string data,
            // and data extracted from the route. We'll use this for the navigation request.
            var data = new RouteValueDictionary(additionalData);

            data.AddRange(route.Values, true);
            var queryValues = new QueryValueCollection(queryString);

            foreach (var pair in queryValues)
            {
                if (!data.ContainsKey(pair.Key))
                {
                    data[pair.Key] = pair.Value;
                }
            }

            var handler = route.Route.CreateRouteHandler();

            handler.ProcessRequest(
                new ResolvedNavigationRequest(
                    requestUri,
                    path,
                    additionalData.Count > 0,
                    this,
                    route.Route,
                    data,
                    progressListeners.Union(Factory.ProgressListeners ?? new NavigationProgressListenerCollection()).ToList()
                    ));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Navigates to the specified URI, resolving the first matching route.
        /// </summary>
        /// <param name="requestUri">The request URI.</param>
        /// <param name="additionalData">Additional data (like post data) that is not in the URI but is used
        /// for navigation.</param>
        private void ExecuteRequestWithUri(Uri requestUri, RouteValueDictionary additionalData)
        {
            additionalData = additionalData ?? new RouteValueDictionary();
            var path = requestUri.GetComponents(UriComponents.Host | UriComponents.Path, UriFormat.Unescaped);
            var queryString = requestUri.GetComponents(UriComponents.Query, UriFormat.Unescaped);

            var route = _routes.MatchPathToRoute(path);
            if (!route.Success)
            {
                throw new UnroutableRequestException(string.Format("The request URI '{0}' could not be routed. {1}{2}", requestUri, Environment.NewLine, route.FailReason));
            }

            // Create a value dictionary with all of the known information - post data, query string data, 
            // and data extracted from the route. We'll use this for the navigation request.
            var data = new RouteValueDictionary(additionalData);
            data.AddRange(route.Values, true);
            var queryValues = new QueryValueCollection(queryString);
            foreach (var pair in queryValues)
            {
                if (!data.ContainsKey(pair.Key))
                {
                    data[pair.Key] = pair.Value;
                }
            }

            var handler = route.Route.CreateRouteHandler();

            handler.ProcessRequest(
                new ResolvedNavigationRequest(
                    requestUri,
                    path,
                    additionalData.Count > 0,
                    this,
                    route.Route,
                    data,
                    _progressListeners.Union(Factory.ProgressListeners ?? new NavigationProgressListenerCollection()).ToList()
                    ));
        }
 public QueryValueCollectionDebuggerView(QueryValueCollection collection)
 {
     this.collection = collection;
 }
Exemplo n.º 5
0
        private QueryValueCollection getValues(string queryName)
        {
            QueryValueCollection values = new QueryValueCollection();

            RelationCollection rels = new RelationCollection(QueryValueEntity.Relations.QueryEntityUsingQueryId);
            rels.Add(QueryValueEntity.Relations.AttributeEntityUsingAttributeId);
            rels.Add(AttributeEntity.Relations.ContextEntityUsingContextId);

            PredicateExpression pe = new PredicateExpression(QueryValueFields.QueryId == Query.Id);
            pe.Add(ContextFields.Name == queryName);

            values.GetMulti(pe, rels);

            return values;
        }