UpdatePatientCommand.as 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.imt.intimamedia.commands.patient
  2. {
  3. import com.adobe.cairngorm.control.CairngormEvent;
  4. import com.imt.flex.cairngormExtended.command.SuperCommand;
  5. import com.imt.intimamedia.business.PatientDelegate;
  6. import com.imt.intimamedia.events.patient.UpdatePatientEvent;
  7. import com.imt.intimamedia.helpers.AES;
  8. import com.imt.intimamedia.model.ApplicationModelLocator;
  9. import com.imt.intimamedia.views.common.ImtToaster;
  10. import com.imt.intimamedia.views.physician.patient.PatientFile;
  11. import com.imt.intimamedia.vo.ReturnObjectVo;
  12. import mx.controls.Alert;
  13. import mx.resources.ResourceManager;
  14. import mx.rpc.events.FaultEvent;
  15. import mx.rpc.events.ResultEvent;
  16. /**
  17. * Commande de mise à jour d'un patient
  18. */
  19. public class UpdatePatientCommand extends SuperCommand
  20. {
  21. public var _dispatcher : PatientFile;
  22. /**
  23. * Excecution de la commande
  24. *
  25. * @param event Evénement de type CairngormEvent
  26. * @return void
  27. */
  28. override public function execute( event : CairngormEvent ) : void
  29. {
  30. super.execute( event );
  31. var delegate : PatientDelegate = new PatientDelegate( this );
  32. var updatePatientEvent : UpdatePatientEvent = UpdatePatientEvent( event );
  33. if (updatePatientEvent.patient.firstName)
  34. updatePatientEvent.patient.firstName = AES.encrypt(updatePatientEvent.patient.firstName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  35. if (updatePatientEvent.patient.lastName)
  36. updatePatientEvent.patient.lastName = AES.encrypt(updatePatientEvent.patient.lastName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  37. delegate.updatePatient( updatePatientEvent.patient, ApplicationModelLocator.getInstance().token );
  38. if (updatePatientEvent.patient.firstName)
  39. updatePatientEvent.patient.firstName = AES.decrypt(updatePatientEvent.patient.firstName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  40. if (updatePatientEvent.patient.lastName)
  41. updatePatientEvent.patient.lastName = AES.decrypt(updatePatientEvent.patient.lastName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  42. }
  43. /**
  44. * Résultat de la commande
  45. *
  46. * @param result Un objet
  47. * @return void
  48. */
  49. override public function result( result : Object ) : void
  50. {
  51. var resultEvent : ResultEvent = ResultEvent( result );
  52. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  53. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  54. _dispatcher = this.getDispatcher(this);
  55. _dispatcher.updatePatientComplete();
  56. super.result( result );
  57. }
  58. /**
  59. * Résultat de la commande
  60. *
  61. * @param result Un objet
  62. * @return void
  63. */
  64. override public function fault( fault : Object ) : void
  65. {
  66. super.fault( fault );
  67. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  68. {
  69. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  70. }
  71. else
  72. {
  73. var toastMessage : ImtToaster = new ImtToaster();
  74. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  75. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.updatePatient') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  76. toastMessage.level = ImtToaster.ERROR;
  77. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  78. }
  79. }
  80. }
  81. }