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);
 }
 public MigrationNode(MigrationRootNode root, VM target, Server reciever, bool turnOnNew = false)
 {
     _root   = root;
     Changes = new MigrationRecord[1] {
         new MigrationRecord(target, reciever, _root.TargetServer)
     };
     IsValid = CalculateValidity();
     if (turnOnNew)
     {
         _turnOnCount = 1;
     }
     _value = CalculateValue(root, turnOnNew);
 }
 public OverloadedMigrationNode(MigrationRootNode root, VM target, Server reciever, bool turnOnNew)
     : base(root, target, reciever, turnOnNew)
 {
 }
 public static MigrationNode FromRootNode(MigrationRootNode root, VM target, Server reciever, bool turnOnNew)
 {
     return(new OverloadedMigrationNode(root, target, reciever, turnOnNew));
 }