Exemplo n.º 1
0
        public ChainedParameter CreateChainedParameter(string resource, string key, string value)
        {
            ChainedParameter parameter = new ChainedParameter();

            parameter.Strain = Strain.Chained;

            string[] segments = key.Split('.');
            string   field, modifier;

            int last = segments.Count() - 1;

            for (int i = 0; i < last; i++)
            {
                Join join = new Join();
                split(segments[i], ':', out field, out modifier);

                join.Field    = field;
                join.Resource = resource;
                join.Argument = this.DetermineArgument(join);

                resource = modifier;
                parameter.Joins.Add(join);
            }

            string _key = segments[last];// field+modifier;

            parameter.Parameter = this.ExtractParameter(resource, _key, value);

            return(parameter);
        }
Exemplo n.º 2
0
        private IMongoQuery ChainQuery(ChainedParameter parameter)
        {
            IEnumerable<BsonValue> collector = null;

            IMongoQuery query = parameter.Parameter.ToQuery();

            int last = parameter.Joins.Count - 1;
            for (int i = last; i >= 0; i--)
            {
                collector = CollectKeys(query);

                Join join = parameter.Joins[i];
                query = M.Query.In(join.Field, collector);
                if (join.Resource != null)
                    query = M.Query.And(query, M.Query.EQ(InternalField.RESOURCE, join.Resource));
            }
            return query;
        }
Exemplo n.º 3
0
        private IMongoQuery ChainQuery(ChainedParameter parameter)
        {
            IEnumerable <BsonValue> collector = null;

            IMongoQuery query = parameter.Parameter.ToQuery();

            int last = parameter.Joins.Count - 1;

            for (int i = last; i >= 0; i--)
            {
                collector = CollectKeys(query);

                Join join = parameter.Joins[i];
                query = M.Query.In(join.Field, collector);
                if (join.Resource != null)
                {
                    query = M.Query.And(query, M.Query.EQ(InternalField.RESOURCE, join.Resource));
                }
            }
            return(query);
        }
Exemplo n.º 4
0
 private void ParseJoins(string key, ChainedParameter parameter)
 {
 }
Exemplo n.º 5
0
        public ChainedParameter CreateChainedParameter(string resource, string key, string value)
        {
            ChainedParameter parameter = new ChainedParameter();
            parameter.Strain = Strain.Chained;

            string[] segments = key.Split('.');
            string field, modifier;

            int last = segments.Count() - 1;
            for (int i = 0; i < last; i++)
            {
                Join join = new Join();
                split(segments[i], ':', out field, out modifier);
                
                join.Field = field;
                join.Resource = resource;
                join.Argument = this.DetermineArgument(join);
                
                resource = modifier;
                parameter.Joins.Add(join);
            }

            string _key = segments[last];// field+modifier;
            parameter.Parameter = this.ExtractParameter(resource, _key, value);

            return parameter;
        }
Exemplo n.º 6
0
        private void ParseJoins(string key, ChainedParameter parameter)
        {
            

        }