| 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' } | 
| } |