public void MoveUp(IDataReplacer replacer) { if (replacer == null) { return; } var prev2 = GetPrevious(replacer); var prev1 = GetPrevious(prev2); var next = replacer.NextReplacer; if (prev2 != null) { prev2.NextReplacer = next; replacer.NextReplacer = prev2; if (prev1 != null) { prev1.NextReplacer = replacer; } if (Root == prev2) { Root = replacer; } } }
public void MoveDown(IDataReplacer replacer) { if (replacer == null) { return; } var next1 = replacer.NextReplacer; var next2 = next1?.NextReplacer ?? null; var prev = GetPrevious(replacer); replacer.NextReplacer = next2; if (next1 != null) { next1.NextReplacer = replacer; if (Root == replacer) { Root = next1; } if (prev != null) { prev.NextReplacer = next1; } } }
public void Test_Add() { var mockReplacer1 = new Mock <IDataReplacer>(); var mockReplacer2 = new Mock <IDataReplacer>(); IDataReplacer next1 = null, next2 = null; mockReplacer1.SetupSet(x => x.NextReplacer = It.IsAny <IDataReplacer>()).Callback <IDataReplacer>(value => next1 = value); mockReplacer1.SetupGet(x => x.NextReplacer).Returns(() => { return(next1); }); mockReplacer2.SetupSet(x => x.NextReplacer = It.IsAny <IDataReplacer>()).Callback <IDataReplacer>(value => next2 = value); mockReplacer2.SetupGet(x => x.NextReplacer).Returns(() => { return(next2); }); var chain = new ReplacerChain(); chain.Add(mockReplacer1.Object); Assert.Equal(mockReplacer1.Object, chain.Root); Assert.Null(next1); Assert.Null(next2); chain.Add(mockReplacer2.Object); Assert.Equal(mockReplacer1.Object, chain.Root); Assert.Equal(mockReplacer2.Object, next1); Assert.Null(next2); }
private void SelectReplacer(IDataReplacer replacer) { var row = gridReplacers.Rows .Cast <DataGridViewRow>() .Where(x => ((ReplacerItem)x.DataBoundItem).Replacer == replacer) .FirstOrDefault(); gridReplacers.ClearSelection(); if (row != null) { row.Selected = true; gridReplacers.CurrentCell = row.Cells[0]; } }
public void Add(IDataReplacer replacer) { if (replacer == null) { return; } var last = Last; if (last != null) { last.NextReplacer = replacer; } else { Root = replacer; } }
public IDataReplacer GetPrevious(IDataReplacer replacer) { var current = Root; if (current == null || replacer == null) { return(null); } while (current != null) { if (current.NextReplacer == replacer) { return(current); } current = current.NextReplacer; } return(null); }
public void Remove(IDataReplacer replacer) { if (replacer == null) { return; } var next = replacer.NextReplacer; replacer.NextReplacer = null; var prev = GetPrevious(replacer); if (prev != null) { prev.NextReplacer = next; } else { Root = next; } }
public IDataReplacer GetNext(IDataReplacer replacer) { return(replacer?.NextReplacer ?? null); }