private TopLevel AddSecondLevelChild(TopLevel current) { var childKvp = current.Children.Last(); var newSecondLevelChild = new SecondLevelChild(Guid.NewGuid(), childKvp.Value.Id.ToString(), null, childKvp.Key, DateTime.UtcNow); var newChild = new FirstLevelChild( childKvp.Value.Id, childKvp.Value.Children.Add(newSecondLevelChild.Id, newSecondLevelChild), childKvp.Value.Weighting, childKvp.Value.Error, childKvp.Value.ReferenceId ); return(new TopLevel( current.Id, current.Children.SetItem(childKvp.Key, newChild), current.Version + 1, current.Tag, current.Description )); }
public Root() { ChildA = new FirstLevelChild(); }