Exemplo n.º 1
0
        /// <summary>
        /// Returns nodes with suppled StartsWith name or complete name
        /// </summary>
        /// <param name="nameStartsWithPart"></param>
        /// <param name="tran"></param>
        /// <returns></returns>
        public IEnumerable <DataAsTree> GetNodesByName(string nameStartsWithPart, DBreeze.Transactions.Transaction tran)
        {
            HashSet <DataAsTree> ret = new HashSet <DataAsTree>();

            CheckTransaction(tran);
            SetupReadTables(tran);

            byte[] val = null;
            byte[] prt = null;
            DBreeze.DataTypes.Row <byte[], byte[]> nodeRow = null;

            foreach (var row in nt3Read.SelectForwardStartsWith <string, byte[]>(nameStartsWithPart))
            {
                val = row.Value;
                int i = 0;
                while ((prt = val.Substring(i, 16)) != null)
                {
                    nodeRow = nt2Read.Select <byte[], byte[]>(prt);
                    if (nodeRow.Exists)
                    {
                        yield return(SetupNodeFromRow(nodeRow));
                    }
                    i += 16;
                }
            }
        }