Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Login (String username, String password, String service) as Boolean 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    value := false; 
 | 
     
 | 
    logintoken := this.GetLoginToken(); 
 | 
     
 | 
    if( logintoken <> '' ) 
 | 
    { 
 | 
      path := '/iam/login'; 
 | 
      if( service <> '' ) 
 | 
      { 
 | 
        path := path + '?service=' + service; 
 | 
      } 
 | 
       
 | 
      nvtrequest := LibInt_MessageAccessor::CreateEmptyMessage(); 
 | 
      LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, '_QI.ContentType', 'RAW' ); 
 | 
      LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointMethod', 'POST' ); 
 | 
      LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointPath', path ); 
 | 
      LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HTTPHeader.Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8' ); 
 | 
      LibInt_MessageAccessor::SetBodyValueAsString( nvtrequest, 'lt=' + logintoken + '&username=' + username + '&password=' + password + '&rememberMe=yes' ); 
 | 
       
 | 
      nvtresponse := LibInt_IntegratorProxy::SyncNvtRequest( 'ThreeDPassport', 'ThreeDPassport', nvtrequest ); 
 | 
      code := LibInt_MessageAccessor::GetHeaderPropertyAsNumber( nvtresponse, 'HTTPResponseCode' ); 
 | 
     
 | 
      if( code = 302 ) 
 | 
      { 
 | 
        value := true; 
 | 
      } 
 | 
    } 
 | 
                                                     
 | 
    return value; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |