Index: VerpakkingsDefinitie/WS/Agent.pas =================================================================== diff -u -r551 -r552 --- VerpakkingsDefinitie/WS/Agent.pas (.../Agent.pas) (revision 551) +++ VerpakkingsDefinitie/WS/Agent.pas (.../Agent.pas) (revision 552) @@ -18,10 +18,12 @@ FUserServerSoap: UserServerSoap; procedure RegistreerLoginGegevens(UserServerServiceContext: TUserServerServiceContext; pxLogInObj: pxLogIn); procedure RegistreerMislukteLogin(UserServerServiceContext: TUserServerServiceContext; pxStatusObj: pxStatus); + procedure RegistreerLogout(UserServerServiceContext: TUserServerServiceContext); + procedure RegistreerMislukteLogout(UserServerServiceContext: TUserServerServiceContext; pxStatusObj: pxStatus); public Constructor Create(); overload; - procedure GebruikerAanmelden(GebruikersNaam: string; Wachtwoord: string; - UserServerServiceContext: TUserServerServiceContext); + procedure GebruikerAanmelden(GebruikersNaam: string; Wachtwoord: string; UserServerServiceContext: TUserServerServiceContext); + procedure GebruikerAfmelden(UserServerServiceContext: TUserServerServiceContext); end; implementation @@ -89,4 +91,55 @@ UserServerServiceContext.InternalErrorMessage := pxStatusObj.InternalMessage; end; +procedure TAgent.GebruikerAfmelden(UserServerServiceContext: TUserServerServiceContext); +var + LogOutData: UserServerService.LogOut; + LogOutResponseObj: UserServerService.LogOutResponse; +begin + LogOutData := nil; + LogOutResponseObj := nil; + try + // Skip als de gebruikers nooit was ingelogd + if UserServerServiceContext.SessionKey = '' then + exit; + + // Request + LogOutData := UserServerService.LogOut.Create(); + LogOutData.SessionKey := UserServerServiceContext.SessionKey; + + LogOutResponseObj := FUserServerSoap.LogOut(LogOutData); + + // Response + if LogOutResponseObj.LogOutResult = nil then + begin + // Gelukt + RegistreerLogout(UserServerServiceContext); + end + else + begin + // Mislukt + RegistreerMislukteLogout(UserServerServiceContext, LogOutResponseObj.LogOutResult); + end; + finally + LogOutData.Free(); + LogOutResponseObj.Free(); + end; +end; + +procedure TAgent.RegistreerLogout(UserServerServiceContext: TUserServerServiceContext); +begin + UserServerServiceContext.IsOK := True; + UserServerServiceContext.ErrorMessage := ''; + UserServerServiceContext.InternalErrorMessage := ''; + UserServerServiceContext.SessionKey := ''; + UserServerServiceContext.GebruikersNaam := ''; +end; + +procedure TAgent.RegistreerMislukteLogout(UserServerServiceContext: TUserServerServiceContext; pxStatusObj: pxStatus); +begin + UserServerServiceContext.IsOK := pxStatusObj.IsOK; + UserServerServiceContext.ErrorMessage := pxStatusObj.Message_; + UserServerServiceContext.InternalErrorMessage := pxStatusObj.InternalMessage; +end; + end.