Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Move ( 
 | 
  ScenarioNodes scenarionodes, 
 | 
  output Boolean isdeleted 
 | 
) 
 | 
{ 
 | 
  Description: 'Move scenario node, return true if any of the datasets have been deleted.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    before := null( ScenarioNode ); 
 | 
    asfolder := guard( this.astype( ScenarioFolder ), null( ScenarioFolder ) ); 
 | 
    isdeleted := not isnull( asfolder ) and asfolder.IsRecycleBin(); 
 | 
     
 | 
    nodesInTrash := construct( ScenarioNodes ); 
 | 
    traverse( scenarionodes, Elements, node, node <> this ) 
 | 
    { 
 | 
      // Delete from recycle bin 
 | 
      if( node.IsDeleted() and isdeleted ) 
 | 
      { 
 | 
        nodesInTrash.Add( node ); 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        // Set to Unavailable if the node is moved into recycle bin 
 | 
        if( isdeleted ) 
 | 
        { 
 | 
          node.SetUnavailable( '' ); 
 | 
        } 
 | 
     
 | 
        this.MoveAfter( node, before ); 
 | 
        before := node; 
 | 
      } 
 | 
    } 
 | 
     
 | 
    // Delete the nodes from recycle bin permanently 
 | 
    // After notifying the LibDEF 
 | 
    ScenarioManager::LibDEFDeleteAllScenarios( nodesInTrash, true ); 
 | 
    traverse( nodesInTrash, Elements, node ) 
 | 
    { 
 | 
      node.DeleteFromRecycleBin(); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Extensible' } 
 | 
} 
 |