private void FillResultList() { Resultlist.Clear(); foreach (var itemHead in HeadlistValues) { var itemBranch = BranchlistValues[(int)itemHead.LineNumber]; var ct = new ConflictText(); ct.LineNumber = itemHead.LineNumber; ct.Text = itemHead.Text; if (itemHead.IsConflict) { string text = ""; if (itemHead.IsChecked && itemBranch.IsChecked) { text += itemHead.Text + Environment.NewLine + itemBranch.Text; } else if (itemHead.IsChecked) { text = itemHead.Text; } else if (itemBranch.IsChecked) { text += itemBranch.Text; } ct.Text = text; } Resultlist.Add(ct); } }
public void ParseToList(string input) { BranchStringList.Clear(); HeadStringList.Clear(); BranchlistValues.Clear(); HeadlistValues.Clear(); flag position = flag.both; int lineNumberLeft = 0; int lineNumberRight = 0; var stringReader = new StringReader(input); string line = String.Empty; while ((line = stringReader.ReadLine()) != null) { if (line.StartsWith("<<<<<<<")) { position = flag.head; continue; } else if (line.StartsWith("=======")) { position = flag.branch; continue; } else if (line.StartsWith(">>>>>>>")) { position = flag.both; FillLines(ref lineNumberLeft, ref lineNumberRight); continue; } if (position == flag.branch) { BranchStringList.Add(lineNumberRight, line); lineNumberRight++; HasConflict = true; } else if (position == flag.head) { HeadStringList.Add(lineNumberLeft, line); lineNumberLeft++; HasConflict = true; } else { HeadStringList.Add(lineNumberLeft, line); BranchStringList.Add(lineNumberRight, line); lineNumberLeft++; lineNumberRight++; } } int i = 0; foreach (var item in HeadStringList) { var ct = new ConflictText() { LineNumber = i, Text = item.Value, IsConflict = IsConflict(i++) }; ct.PropertyChanged += Head_PropertyChanged; HeadlistValues.Add(ct); } i = 0; foreach (var item in BranchStringList) { var ct = new ConflictText() { LineNumber = i, Text = item.Value, IsConflict = IsConflict(i++) }; BranchlistValues.Add(ct); ct.PropertyChanged += Branch_PropertyChanged; } FillResultList(); }