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