internal void ProcessDiffs(DataSet ds, XmlReader ssync) { int pos = -1; int depth = ssync.Depth; ssync.Read(); this.SkipWhitespaces(ssync); while (depth < ssync.Depth) { DataTable table = null; string attribute = null; int num = -1; int num1 = ssync.Depth; attribute = ssync.GetAttribute("id", "urn:schemas-microsoft-com:xml-diffgram-v1"); bool flag = ssync.GetAttribute("hasErrors", "urn:schemas-microsoft-com:xml-diffgram-v1") == "true"; num = this.ReadOldRowData(ds, ref table, ref pos, ssync); if (num != -1) { if (table == null) { throw ExceptionBuilder.DiffgramMissingSQL(); } DataRow row = (DataRow)table.RowDiffId[attribute]; if (row != null) { row.oldRecord = num; table.recordManager[num] = row; } else { row = table.NewEmptyRow(); table.recordManager[num] = row; row.oldRecord = num; row.newRecord = num; table.Rows.DiffInsertAt(row, pos); row.Delete(); if (flag) { table.RowDiffId[attribute] = row; } } } } }