This code does not seem to solve the problem. I had to convert it to VB.Net, since I'm using VB.Net rather than C#. I'm attaching my code, so can check to make sure I converted it correctly. Please send VB.Net code fragments in the future if possible, because my employer uses VB.Net, nor C#.
The Replace at the end of UpdateRefFields tried to replace "1.1" with "1.1", and "1.2" with "1.2", so it did not do anything in the end. I think you wanted it to replace "1.1" with "2.1" and "1.2" with "2.2".
There were several small problems in the code that was attached that I tried to correct.
1) There is a call to GetFieldResult, which is not defined. On the other hand GetFieldValue is defined, but is never called. I changed the name of GetFieldValue to be GetFieldResult.
2) TrimEnd needs to take an array of Chars as an argument, not a single Char.
3) There is code to compare para.ListFormat.List and bookmarkPara.ListFormat.List for equality. There is no = operator for Aspose.Words.Lists.List. I used Object.ReferenceEquals to test for equality.
4) The word "calculated" was misspelled as "calulated".
Not a bug, but a difference between VB and C#: I defined listCodes to be of type Char(), not String(). The elements were defined to be ChrW(0), ChrW(1), etc. I think this should still work. I could have kept the String() type, and defined the elements to be ChrW(0).ToString, ChrW(1).ToString, etc.
See my attached file AsposeFixes.txt for my VB code.
Thanks,
Mark Novick
senior software engineer
ASC