protected override void DehydrateHeader(IDataDehydrator dehydrator) { base.DehydrateHeader(dehydrator); this.Total.Dehydrate(dehydrator); var parameters = new AccountIdGroupSerializer.AccountIdGroupSerializerDehydrateParameters <RecipientSet, AccountId> { DehydrateExtraData = (entry, AccountId, offset, index, dh) => { entry.Amount.Dehydrate(dehydrator); } }; AccountIdGroupSerializer.Dehydrate(this.Recipients.ToDictionary(e => e.Recipient, e => e), dehydrator, true, parameters); }
protected override void RehydrateHeader(IDataRehydrator rehydrator) { base.RehydrateHeader(rehydrator); this.Total.Rehydrate(rehydrator); this.Recipients.Clear(); var parameters = new AccountIdGroupSerializer.AccountIdGroupSerializerRehydrateParameters <AccountId> { RehydrateExtraData = (accountId, offset, index, dh) => { RecipientSet entry = new RecipientSet(); entry.Recipient = accountId; entry.Amount.Rehydrate(rehydrator); this.Recipients.Add(entry); } }; AccountIdGroupSerializer.Rehydrate(rehydrator, true, parameters); }