/// //////////////////////////////////////////////////////// protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); if (sessionClient != null) { if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur) { using (C2iSponsor sponsor = new C2iSponsor()) { CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientMessageBox); if (service != null) { sponsor.Register(service); //Calcule le message CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = FormuleMessage.Eval(contexteEval); if (!result) { result = CResultAErreur.True; m_strMessageCache = FormuleMessage.GetString(); } else { m_strMessageCache = result.Data == null ? "" : result.Data.ToString(); } result = service.RunService(this); if (!result) { return(result); } E2iDialogResult dResult = (E2iDialogResult)result.Data; foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienFromDialog && ((CLienFromDialog)lien).ResultAssocie == dResult) { result.Data = lien; return(result); } } result.Data = null; return(result); } } } } //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } return(result); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; //Calcule le message string strMessage = ""; CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = FormuleMessage.Eval(contexteEval); if (!result) { result = CResultAErreur.True; strMessage = FormuleMessage.GetString(); } else { strMessage = result.Data == null?"":result.Data.ToString(); } string strCodeAttente = ""; if (FormuleCodeAttente != null) { result = FormuleCodeAttente.Eval(contexteEval); if (!result || result.Data == null) { strCodeAttente = ""; } else { strCodeAttente = result.Data.ToString(); } } //TESTDBKEYOK (SC) CDbKey keyUtilisateur = contexte.Branche.KeyUtilisateur; if (m_formuleIdUtilisateur != null) { //TESTDBKEYOK result = m_formuleIdUtilisateur.Eval(contexteEval); if (result) { if (result.Data is int) { keyUtilisateur = CUtilInfosUtilisateur.GetKeyUtilisateurFromId((int)result.Data); } if (result.Data is string) { keyUtilisateur = CDbKey.CreateFromStringValue((string)result.Data); } if (result.Data is CDbKey) { keyUtilisateur = (CDbKey)result.Data; } if (keyUtilisateur != null) { contexte.Branche.KeyUtilisateur = keyUtilisateur; } } } //Si le code d'attente n'est pas null et qu'il y a déjà une attente, //il faut la supprimer if (strCodeAttente != null && strCodeAttente.Trim() != "") { CFiltreData filtre = new CFiltreData( CBesoinInterventionProcess.c_champCodeAttente + "=@1", strCodeAttente); CListeObjetsDonnees listeToDelete = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CBesoinInterventionProcess)); listeToDelete.Filtre = filtre; if (listeToDelete.Count != 0) { CObjetDonneeAIdNumerique.Delete(listeToDelete); } } CBesoinInterventionProcess intervention = new CBesoinInterventionProcess(contexte.ContexteDonnee); intervention.CreateNewInCurrentContexte(); intervention.ProcessEnExecution = contexte.ProcessEnExecution; //TESTDBKEYOK intervention.KeyUtilisateur = keyUtilisateur; intervention.DateDemande = DateTime.Now; intervention.CodeAttente = strCodeAttente; intervention.Libelle = strMessage; CLienAction[] liens = GetLiensSortantHorsErreur(); if (liens.Length == 1) { intervention.IdAction = liens[0].ActionArrivee.IdObjetProcess; } else { intervention.IdAction = -1; } //Mise du process en pause ! result.Data = new CMetteurDeProcessEnPause( ); return(result); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); if (sessionClient != null) { //TESTDBKEYOK if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur) { using (C2iSponsor sponsor = new C2iSponsor()) { CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceSelectionFichierClient); if (service != null) { sponsor.Register(service); //Calcule le message CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = FormuleMessage.Eval(contexteEval); if (!result) { result = CResultAErreur.True; result.Data = "##"; } m_strMessageCache = result.Data as string; result = FormuleFiltre.Eval(contexteEval); if (!result) { result = CResultAErreur.True; result.Data = "*.*"; } m_strFiltreCache = result.Data as string; result = FormuleRepertoireInitial.Eval(contexteEval); if (!result) { result = CResultAErreur.True; result.Data = ""; } m_strRepertoireInitialCache = result.Data as string; // Lance le service result = service.RunService(this); if (!result) { return(result); } string strNomFichier = result.Data as string; if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, result.Data); } foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienFromDialog && ((((CLienFromDialog)lien).ResultAssocie == E2iDialogResult.Cancel && strNomFichier == "") || (((CLienFromDialog)lien).ResultAssocie == E2iDialogResult.OK && strNomFichier != ""))) { result.Data = lien; return(result); } } return(result); } } } } //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } return(result); }