Пример #1
0
        private static Dictionary <ulong, NodeDataDTO> GetSIBlockData(SIBLOCK siblock, PSTFile pst)
        {
            var ret = new Dictionary <ulong, NodeDataDTO>();

            foreach (var entry in siblock.Entries)
            {
                var curSLBlockBBT = pst.GetBlockBBTEntry(entry.SLBlockBID);
                var slblock       = new SLBLOCK(pst.Header.isUnicode, BlockBO.GetBBTEntryData(curSLBlockBBT, pst)[0]);
                var data          = BlockBO.GetSLBlockData(slblock, pst);
                foreach (var item in data)
                {
                    ret.Add(item.Key, item.Value);
                }
            }

            return(ret);
        }
Пример #2
0
        private static Dictionary <ulong, NodeDataDTO> GetSubNodeData(BBTENTRY entry, PSTFile pst)
        {
            var allData   = BlockBO.GetBBTEntryData(entry, pst);
            var dataBlock = allData[0];

            if (entry.Internal)
            {
                var type   = dataBlock.Data[0];
                var cLevel = dataBlock.Data[1];
                if (cLevel == 0) //SLBlock, no intermediate
                {
                    return(BlockBO.GetSLBlockData(new SLBLOCK(pst.Header.isUnicode, dataBlock), pst));
                }
                else   //SIBlock
                {
                    return(BlockBO.GetSIBlockData(new SIBLOCK(pst.Header.isUnicode, dataBlock), pst));
                }
            }
            else
            {
                throw new Exception("Whoops");
            }
        }