public MigrationNode(MigrationNode parent, VM target, Server reciever, bool turnOnNew = false)
 {
     _root        = parent._root;
     Changes      = parent.Changes.Append(new MigrationRecord(target, reciever, _root.TargetServer)).ToArray();
     _turnOnCount = parent._turnOnCount;
     IsValid      = CalculateValidity();
     if (turnOnNew)
     {
         _turnOnCount += 1;
     }
     _value = CalculateValue(parent, turnOnNew);
 }
 protected override IStateNode CreateNode(MigrationNode parent, VM target, Server reciever, bool turnOnNew = false)
 {
     return(new OverloadedMigrationNode(parent, target, reciever, turnOnNew));
 }
 public OverloadedMigrationNode(MigrationNode parent, VM target, Server reciever, bool turnOnNew = false)
     : base(parent, target, reciever, turnOnNew)
 {
 }
 protected abstract IStateNode CreateNode(MigrationNode parent, VM target, Server reciever, bool turnOnNew = false);