Quintiq file version 2.0
#parent: #root
Method ImportFiles (
  String importpath,
  output structured[BinaryValue] binaryvalues,
  output structured[String] brokers,
  output structured[BinaryValue] smbinaryvalues,
  structured[String] smbrokers,
  structured[String] fileNames,
  structured[String] smFileNames,
  structured[String] missingFiles
) id:Method_DialogEDIImport_ImportFiles
{
  #keys: '[127238.0.2017718758]'
  Body:
  [*
    // Upload send data to server
    importpath := importpath;
    
    is3DDrive := RadioButtonGroupExcelOrDataManager.BoundValue()= MPSyncUtility::ID_Source_3DDrive();
    
    traverse( Dialog.Data().WrappedInstance(), ImportObjectGroupInDefaultProfile, e,
              e.IsIncludeInImportExport() )
    {  
      filenames := e.ImportObjectGroup().GetMPFileNames();
      traverse( filenames, Elements, filename )
      {
        filepath := importpath + filename;
        fileExists := ifexpr( is3DDrive, 
                              exists( DataHolderFileItems.Data(), Elements, fileItem, fileItem.Name() = filename ),
                              Application.ClientFileExists( filepath ) );
                              
        if( fileExists )
        {   
          bindata := ifexpr( is3DDrive, BinaryData::Construct(), Application.ReadBinaryFile( filepath ) );
          brokername := Dialog.GetBrokerName( filename );
          calendarfilename := LibCal_ImportExport::DEFAULT_EXPORT_FILENAME();
          condition := "^MP_|" + calendarfilename;
           
          if( filename.Regex( condition) )
          {
            binaryvalues.Add( bindata.AsBinaryValue() );
            
            if ( brokername.Length() >0 )
            {
              brokers.Add( brokername );
              fileNames.Add( filename );          
            }
          }
          else
          {
            smbinaryvalues.Add( bindata.AsBinaryValue() )    
            
            if ( brokername.Length() >0 )
            {
              smbrokers.Add( brokername );
              smFileNames.Add( filename );
            }
          }
        }
        else
        {
          missingFiles.Add( filename )
        }
      }
    }
  *]
}
