LoginCommand.as 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.imt.intimamedia.commands.user
  2. {
  3. import com.adobe.cairngorm.control.CairngormEvent;
  4. import com.imt.flex.cairngormExtended.command.SuperCommand;
  5. import com.imt.intimamedia.business.UserDelegate;
  6. import com.imt.intimamedia.events.patient.SearchPatientEvent;
  7. import com.imt.intimamedia.events.user.LoginEvent;
  8. import com.imt.intimamedia.helpers.HelpUtils;
  9. import com.imt.intimamedia.model.ApplicationModelLocator;
  10. import com.imt.intimamedia.views.common.ImtToaster;
  11. import com.imt.intimamedia.vo.ReturnObjectVo;
  12. import com.imt.intimamedia.vo.UserVo;
  13. import mx.collections.ArrayCollection;
  14. import mx.controls.Alert;
  15. import mx.core.Application;
  16. import mx.resources.ResourceManager;
  17. import mx.rpc.events.FaultEvent;
  18. import mx.rpc.events.ResultEvent;
  19. /**
  20. * Commande d'identification
  21. */
  22. public class LoginCommand extends SuperCommand
  23. {
  24. /**
  25. * Excecution de la commande
  26. *
  27. * @param event Evénement de type CairngormEvent
  28. * @return void
  29. */
  30. override public function execute( event : CairngormEvent ) : void
  31. {
  32. super.execute( event );
  33. var delegate : UserDelegate = new UserDelegate( this );
  34. var loginEvent : LoginEvent = LoginEvent( event );
  35. delegate.login( loginEvent.user );
  36. }
  37. /**
  38. * Résultat de la commande
  39. *
  40. * @param result Un objet
  41. * @return void
  42. */
  43. override public function result( result : Object ) : void
  44. {
  45. super.result( result );
  46. var resultEvent : ResultEvent = ResultEvent( result );
  47. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  48. ApplicationModelLocator.getInstance().connectedUser = returnObjectVo.value as UserVo;
  49. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  50. ApplicationModelLocator.getInstance().physicianMenuActive = true;
  51. ApplicationModelLocator.getInstance().generalMenuActive = false;
  52. ApplicationModelLocator.getInstance().activeView = ApplicationModelLocator.getInstance().application.menuPhysician;
  53. ApplicationModelLocator.getInstance().application.menuPhysician.selectedIndex = 0;
  54. Application.application.flags.changeLanguage(ApplicationModelLocator.getInstance().connectedUser.language);
  55. new SearchPatientEvent( "", null ).dispatch();
  56. // load help if needed
  57. if (ApplicationModelLocator.getInstance().connectedUser.help)
  58. {
  59. HelpUtils.loadHelp(HelpUtils.buildPatientHelpPages(), 0);
  60. }
  61. }
  62. /**
  63. * Résultat de la commande
  64. *
  65. * @param result Un objet
  66. * @return void
  67. */
  68. override public function fault( fault : Object ) : void
  69. {
  70. super.fault( fault );
  71. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ACCOUNT_NOT_CONFIRMED )
  72. {
  73. ApplicationModelLocator.displayAccountError( fault as FaultEvent );
  74. }
  75. else
  76. {
  77. var toastMessage : ImtToaster = new ImtToaster();
  78. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  79. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.login') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  80. toastMessage.level = ImtToaster.ERROR;
  81. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  82. }
  83. }
  84. }
  85. }