private void InsertEntryBlock(Ex12RenEntryIdStrategy.PersistenceId persistenceId, Ex12ExRenEntryParser.ExFolderEntry exFolderEntry) { this.defaultFolderRenEx[(ushort)persistenceId] = exFolderEntry; int num = (this.entryBlob == null) ? 0 : this.entryBlob.Length; int num2; int num3; byte[] array = exFolderEntry.ToBlock(persistenceId, out num2, out num3); this.entryBlob = Ex12ExRenEntryParser.ReplaceBlob(this.entryBlob, 0, 0, array); exFolderEntry.Start = num + num2; exFolderEntry.End = num + array.Length; }
internal bool Remove(Ex12RenEntryIdStrategy.PersistenceId persistenceId) { Ex12ExRenEntryParser.ExFolderEntry exFolderEntry = null; if (this.defaultFolderRenEx.TryGetValue((ushort)persistenceId, out exFolderEntry)) { int start = exFolderEntry.Start - 4; this.entryBlob = Ex12ExRenEntryParser.ReplaceBlob(this.entryBlob, start, exFolderEntry.End, Array <byte> .Empty); this.defaultFolderRenEx.Clear(); this.Parse(); return(true); } return(false); }
private bool ReplaceEntryBlock(Ex12RenEntryIdStrategy.PersistenceId persistenceId, Ex12ExRenEntryParser.ExFolderEntry exFolderEntry) { Ex12ExRenEntryParser.ExFolderEntry exFolderEntry2 = null; if (this.defaultFolderRenEx.TryGetValue((ushort)persistenceId, out exFolderEntry2)) { byte[] array = exFolderEntry.ToBytes(); if (array.Length == exFolderEntry2.End - exFolderEntry2.Start) { exFolderEntry.Start = exFolderEntry2.Start; exFolderEntry.End = array.Length + exFolderEntry.Start; this.defaultFolderRenEx[(ushort)persistenceId] = exFolderEntry; this.entryBlob = Ex12ExRenEntryParser.ReplaceBlob(this.entryBlob, exFolderEntry2.Start, exFolderEntry2.End, array); return(true); } } return(false); }