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.
senior software engineer