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); }
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"); } }