Quintiq file version 2.0
|
#parent: #root
|
Method DeleteDataset (
|
structured[LibOpt_SnapshotReplannableCopyDataset] snapshots
|
) id:Method_LibOpt_GlobalState_DeleteDataset
|
{
|
#keys: '[141860.2.581295660]'
|
Body:
|
[*
|
// Delete the datasets that are attached to the LibOpt_SnapshotReplannableCopyDatasets
|
loadedobjectinfos := ExternalMDSEditor::Editor().LoadedObjectInfos();
|
infocurrentdataset := loadedobjectinfos.Find( snapshots.First().MDSID() );
|
|
// Show a popup with a warning if you are trying to delete the currently selected dataset.
|
// Show a different popup for each dataset that is currently loaded.
|
traverse( snapshots,
|
Elements,
|
snapshot,
|
not snapshot.IsDatasetDeleted()
|
)
|
{
|
if( infocurrentdataset.Name() = snapshot.DatasetName() )
|
{
|
if ( MessageBox::Question( this, Translations::LibOpt_SnapshotReplannable_MessageBox_DeleteCurrentDataset(), '&Yes|&No' ) <> 0 )
|
{
|
snapshots.Remove( snapshot );
|
}
|
}
|
else if( not isnull( loadedobjectinfos.Find( snapshot.DatasetName() ) ) )
|
{
|
if ( MessageBox::Question( this, Translations::LibOpt_SnapshotReplannable_MessageBox_DeleteLoadedDataset( snapshot ), '&Yes|&No' ) <> 0 )
|
{
|
snapshots.Remove( snapshot );
|
}
|
}
|
|
}
|
|
// The DeleteDatasetCopiesAndUpdateSnapshotStatus unloads all dataset copies.
|
// When a dataset copy cannot be found, then the DeleteDatasetCopiesAndUpdateSnapshotStatus also updates all snapshots.
|
// We both delete the datasets and update the snapshots in a single method to ensure that we only start 1 server transaction.
|
// We cannot use the 'Group server calls in 1 transaction' checkbox, because UI methods (like this one) cannot be used when that checkbox is checked.
|
isanydatasetdeleted := LibOpt_SnapshotReplannableCopyDataset::DeleteDatasetCopiesAndUpdateSnapshotStatus( snapshots )
|
if( isanydatasetdeleted )
|
{
|
// Show a popup warning explaining that the status of the snapshots has been updated.
|
MessageBox::Warning( this,
|
Translations::LibOpt_SnapshotReplannable_MessageBox_UnexpectedStatus(),
|
Translations::LibOpt_MessageBox_OK()
|
);
|
}
|
*]
|
}
|