public Step(int key, ReduxAction action, object state, ObjectData actionData, ObjectTreeItem actionTreeItem, ObjectData stateData, ObjectTreeItem stateTreeItem, DifferenceItem differenceItem, bool differenceCalculated) { Key = key; Action = action; State = state; ActionData = actionData; ActionTreeItem = actionTreeItem; StateData = stateData; StateTreeItem = stateTreeItem; DifferenceItem = differenceItem; DifferenceCalculated = differenceCalculated; }
public static DifferenceItemContainer FromList(ListObjectTreeItem current, ListObjectTreeItem next) { List <DifferenceItem> modifications = new List <DifferenceItem>(); var nextChildren = new List <ObjectTreeItem>(next.Children); foreach (var item in current.Children) { ObjectTreeItem nextItem; if (item != null) { nextItem = next.Children.SingleOrDefault(i => AreKeysEqual(item, i)); } else { nextItem = next.Children.SingleOrDefault(i => Equals(i, item)); } if (nextItem == null) { modifications.Add(new DifferenceItem(item, null, DiffType.Removed)); } else { DifferenceItem differenceTree = CreateDifferenceTree(item, nextItem); if (differenceTree != null && differenceTree.DiffType != DiffType.None) { modifications.Add(differenceTree); } nextChildren.Remove(nextItem); } } foreach (var nextItem in nextChildren) { modifications.Add(FromBranchAdded(nextItem)); } if (modifications.Count > 0) { return(new DifferenceItemContainer(modifications.ToArray(), current, next, DiffType.Modified)); } return(null); }