//------------------------------------------------------------------------------------ public void GetInfosPopup(IDonneeNotification donnee, ref bool bShouldDisplay, ref string strLibelle, ref Image image) { bShouldDisplay = false; CDonneeNotificationWorkflow dw = donnee as CDonneeNotificationWorkflow; if (dw == null) { return; } string[] strCodesInteressants = CUtilSession.GetCodesAffectationsEtapeConcernant(CSc2iWin32DataClient.ContexteCourant); bool bPourMoi = false; foreach (string strCode in strCodesInteressants) { if (dw.CodesAffectations.Contains("~" + strCode + "~")) { bPourMoi = true; break; } } if (bPourMoi) { strLibelle = dw.Libelle; image = Resources._1346738948_task; bShouldDisplay = true; } }
void m_recepteurWorkflow_OnReceiveNotification(IDonneeNotification donnee) { CDonneeNotificationWorkflow dw = donnee as CDonneeNotificationWorkflow; if (dw == null) { return; } string[] strCodesInteressants = CUtilSession.GetCodesAffectationsEtapeConcernant(CSc2iWin32DataClient.ContexteCourant); bool bPourMoi = false; foreach (string strCode in strCodesInteressants) { if (dw.CodesAffectations.Contains("~" + strCode + "~")) { bPourMoi = true; break; } } if (bPourMoi) { CSessionClient session = CSessionClient.GetSessionForIdSession(dw.IdSessionEnvoyeur); CSousSessionClient sousSession = session as CSousSessionClient; if (sousSession != null) { session = sousSession.RootSession; } if (session != null && session.IdSession == CTimosApp.SessionClient.IdSession && dw.ExecutionAutomatique ) { m_nIdEtapeToLaunch = dw.IdEtapeSource; } m_nNbClignotementsWorkflowsRestant += c_nNbClignotementsWorkflow; CDonneesActeurUtilisateur user = CUtilSession.GetUserForSession(CSc2iWin32DataClient.ContexteCourant); if (user != null) { CListeObjetsDonnees lstPourActeur = user.Acteur.GetEtapeWorkflowsEnCours(); m_nNbEtapesEnCours = lstPourActeur.Count; if (m_nNbEtapesEnCours > 0) { m_lblNbToDo.Text = m_nNbEtapesEnCours.ToString(); m_lblNbToDo.Visible = true; } else { m_lblNbToDo.Text = "0"; m_lblNbToDo.Visible = false; } } } }
//----------------------------------------------------------------------------- public CResultAErreur AfficheEtape(CEtapeWorkflow etape, bool bDansNouvelOnglet) { CResultAErreur result = CResultAErreur.True; if (etape == null || etape.TypeEtape == null) { return(result); } //Vérifie que l'étape est bien affectée à l'utilisateur string[] strCodes = CUtilSession.GetCodesAffectationsEtapeConcernant(etape.ContexteDonnee.ContexteDonnee); CAffectationsEtapeWorkflow affs = etape.Affectations; bool bIsAffectée = false; foreach (string strCode in strCodes) { if (affs.Contains(strCode)) { bIsAffectée = true; break; } } if (bIsAffectée) { CBlocWorkflow bloc = etape.TypeEtape.Bloc; if (bloc is CBlocWorkflowFormulaire) { result = AfficheEtapeFormulaire(etape, bDansNouvelOnglet); } else if (bloc is CBlocWorkflowProcess) { using (CContexteDonnee ctxt = new CContexteDonnee(etape.ContexteDonnee.IdSession, true, false)) { etape = etape.GetObjetInContexte(ctxt) as CEtapeWorkflow; result = ((CBlocWorkflowProcess)bloc).StartProcess(etape); } } if (!result) { EModeGestionErreurEtapeWorkflow mode = CFormErreurOnWorkflowStep.OnError(result, bloc.ModeGestionErreur); if (mode != EModeGestionErreurEtapeWorkflow.DoNothing) { using (CContexteDonnee ctx = new CContexteDonnee(etape.ContexteDonnee.IdSession, true, false)) { CEtapeWorkflow etapeInContexte = etape.GetObjetInContexte(ctx) as CEtapeWorkflow; switch (mode) { case EModeGestionErreurEtapeWorkflow.CancelStep: etapeInContexte.CancelStep(); break; case EModeGestionErreurEtapeWorkflow.EndStep: result = etapeInContexte.EndEtapeNoSave(); if (!result) { result.EmpileErreur(I.T("Can not end step|20766")); CFormAlerte.Afficher(result.Erreur); return(result); } break; case EModeGestionErreurEtapeWorkflow.SetError: etapeInContexte.EtatCode = (int)EEtatEtapeWorkflow.Erreur; etapeInContexte.LastError = result.Erreur.ToString(); etapeInContexte.DateFin = null; break; } result = ctx.SaveAll(true); } } } } else { CFormAlerte.Afficher(I.T("You are not allowed to display this step|20620")); } return(result); }