package com.imt.intimamedia.commands.user { import com.adobe.cairngorm.control.CairngormEvent; import com.imt.flex.cairngormExtended.command.SuperCommand; import com.imt.intimamedia.business.UserDelegate; import com.imt.intimamedia.events.patient.SearchPatientEvent; import com.imt.intimamedia.events.user.LoginEvent; import com.imt.intimamedia.helpers.HelpUtils; import com.imt.intimamedia.model.ApplicationModelLocator; import com.imt.intimamedia.views.common.ImtToaster; import com.imt.intimamedia.vo.ReturnObjectVo; import com.imt.intimamedia.vo.UserVo; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.core.Application; import mx.resources.ResourceManager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; /** * Commande d'identification */ public class LoginCommand extends SuperCommand { /** * Excecution de la commande * * @param event Evénement de type CairngormEvent * @return void */ override public function execute( event : CairngormEvent ) : void { super.execute( event ); var delegate : UserDelegate = new UserDelegate( this ); var loginEvent : LoginEvent = LoginEvent( event ); delegate.login( loginEvent.user ); } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function result( result : Object ) : void { super.result( result ); var resultEvent : ResultEvent = ResultEvent( result ); var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo; ApplicationModelLocator.getInstance().connectedUser = returnObjectVo.value as UserVo; ApplicationModelLocator.getInstance().token = returnObjectVo.token; ApplicationModelLocator.getInstance().physicianMenuActive = true; ApplicationModelLocator.getInstance().generalMenuActive = false; ApplicationModelLocator.getInstance().activeView = ApplicationModelLocator.getInstance().application.menuPhysician; ApplicationModelLocator.getInstance().application.menuPhysician.selectedIndex = 0; Application.application.flags.changeLanguage(ApplicationModelLocator.getInstance().connectedUser.language); new SearchPatientEvent( "", null ).dispatch(); // load help if needed if (ApplicationModelLocator.getInstance().connectedUser.help) { HelpUtils.loadHelp(HelpUtils.buildPatientHelpPages(), 0); } } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function fault( fault : Object ) : void { super.fault( fault ); if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ACCOUNT_NOT_CONFIRMED ) { ApplicationModelLocator.displayAccountError( fault as FaultEvent ); } else { var toastMessage : ImtToaster = new ImtToaster(); toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title'); toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.login') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")"; toastMessage.level = ImtToaster.ERROR; ApplicationModelLocator.getInstance().toaster.toast( toastMessage ); } } } }