Esempio n. 1
0
        public string ToTokenizedSearchString()
        {
            this.Tokenize();
            StringBuilder builder = new StringBuilder();

            builder.Append("MATCH p=");
            try
            {
                using (IEnumerator <SearchNode> nodeEmumerator = this.Nodes.GetEnumerator())
                {
                    while (nodeEmumerator.MoveNext())
                    {
                        SearchNode n = nodeEmumerator.Current;
                        using (IEnumerator <SearchEdge> edgeEmumerator = this.Edges.GetEnumerator())
                        {
                            while (edgeEmumerator.MoveNext())
                            {
                                SearchEdge edge = edgeEmumerator.Current;
                                builder.Append(n.ToTokenizedSearchString() + edge.ToTokenizedSearchString());
                                nodeEmumerator.MoveNext();
                                n = nodeEmumerator.Current;
                            }
                        }
                        builder.Append(n.ToTokenizedSearchString());
                    }
                }
                string cond = this.Condition?.ToTokenizedSearchString();
                if (string.IsNullOrWhiteSpace(cond) == false)
                {
                    cond = " WHERE " + cond;
                }
                builder.Append(cond);
                builder.Append(" UNWIND nodes(p) as bnest_nodes RETURN DISTINCT bnest_nodes ORDER BY LOWER(bnest_nodes.name)");
            }
            catch (Exception e)
            {
                return("There was an error building the query string: " + e.Message);
            }

            return(builder.ToString());
        }
Esempio n. 2
0
        private StringBuilder BuildBaseSearchString()
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("MATCH p=");
            try
            {
                using (IEnumerator <SearchNode> nodeEmumerator = this.Nodes.GetEnumerator())
                {
                    while (nodeEmumerator.MoveNext())
                    {
                        SearchNode n = nodeEmumerator.Current;
                        using (IEnumerator <SearchEdge> edgeEmumerator = this.Edges.GetEnumerator())
                        {
                            while (edgeEmumerator.MoveNext())
                            {
                                SearchEdge edge = edgeEmumerator.Current;
                                builder.Append(n.ToSearchString() + edge.ToSearchString());
                                nodeEmumerator.MoveNext();
                                n = nodeEmumerator.Current;
                            }
                        }
                        builder.Append(n.ToSearchString());
                    }
                }
                string cond = this.Condition?.ToSearchString();
                if (string.IsNullOrWhiteSpace(cond) == false)
                {
                    cond = " WHERE " + cond;
                }
                builder.Append(cond);
            }
            catch (Exception e)
            {
                throw new InvalidOperationException("There was an error building the query string: " + e.Message);
            }
            return(builder);
        }