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.user.RegisterEvent; import com.imt.intimamedia.model.ApplicationModelLocator; import com.imt.intimamedia.views.common.ImtToaster; import com.imt.intimamedia.views.general.register.RegisterView; import com.imt.intimamedia.vo.ReturnObjectVo; import com.imt.intimamedia.vo.UserVo; import mx.controls.Alert; import mx.resources.ResourceManager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; /** * Commande d'enregistrement d'un utilisateur */ public class RegisterCommand extends SuperCommand { private var _dispatcher : RegisterView; /** * Excecution de la commande * * @param event Evénement de type CairngormEvent * @return void */ override public function execute( event : CairngormEvent ) : void { super.execute( event ); // Alert.show("Execute RegisterCommand"); var delegate : UserDelegate = new UserDelegate( this ); var registerEvent : RegisterEvent = RegisterEvent( event ); delegate.register( registerEvent.user, registerEvent.lang ); _dispatcher = this.getDispatcher(this); } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function result( result : Object ) : void { //super.result( result ); // Alert.show("result RegisterCommand"); var resultEvent : ResultEvent = ResultEvent( result ); var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo; var uid : String = returnObjectVo.value; _dispatcher.returnToHome(uid); var toastMessage : ImtToaster = new ImtToaster(); toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'register.title'); toastMessage.message = ResourceManager.getInstance().getString('labels', 'register.message'); toastMessage.timeToLive = 10; toastMessage.level = ImtToaster.VALIDATION; ApplicationModelLocator.getInstance().token = returnObjectVo.token; ApplicationModelLocator.getInstance().toaster.toast( toastMessage ); } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function fault( fault : Object ) : void { _dispatcher.registerButton.enabled = true; super.fault( fault ); var toastMessage : ImtToaster = new ImtToaster(); toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title'); toastMessage.level = ImtToaster.ERROR; if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().USER_ALREADY_EXISTS ) { toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.userAlreadyExists'); } else { toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.register') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")"; } Alert.show("fault RegisterCommand" + ( fault as FaultEvent ).fault.faultString); ApplicationModelLocator.getInstance().toaster.toast( toastMessage ); } } }