I've been writing a bit of software in C# that works well to export and reconstruct archived public folder data into an Office 365 archive mailbox. All has been fine except for when it gets to some items that have a shorter IdChecksumLow than 8 digits, because when you use the standard algorythem for constructing the "Id" property the API rejects it.
So an example of a normal working Id value when I construct it :-
201110209077076~201110200217000000~Z~10BEE9958432529AEFD2D18549126971
<IdChecksumHigh><IdChecksumLow>~<ArchivedDate>~Z~<IdTransaction>
The problem comes when the IdChecksumLow field in SQL has less than 8 characters, so I might get a value like this :-
2011111932894~201110211324000000~Z~9048F50297260117475642BEB632A091
Because the IdChecksumLow is 932894, 6 characters long. If I pad the number either side with zeros so 00932894 or 93289400 it seems to work fine and goes on to retrieve the item.
However, what is the "correct" rule for constructing this Id string? Should it be padded? Should it have some extra values taken from another field? Does it even matter?
I don't want to allow it to simply continue all the way with guess work incase it retrieved the wrong items into the wrong folders, a tip would be appreciated :)