public List <CsPoste> RetourneListePoste()
 {
     try
     {
         var obj = new DBAdmUsers().RetourneListePoste();
         return(obj);
     }
     catch (Exception ex)
     {
         ErrorManager.LogException(this, ex);
         return(null);
     }
 }
 public List <CsHistoriquePassword> RetourneHistoriquePassword(int idUser)
 {
     try
     {
         List <CsHistoriquePassword> lst = new DBAdmUsers().RetourneHistoriquePassword(idUser);
         lst.ForEach(t => t.DATECREATION = Convert.ToDateTime(t.DATECREATION));
         return(lst);
     }
     catch (Exception ex)
     {
         ErrorManager.LogException(this, ex);
         return(null);
     }
 }
Exemple #3
0
        // If your activity returns a value, derive from CodeActivity<TResult>
        // and return the value from the Execute method.
        protected override RESULTACTION Execute(CodeActivityContext context)
        {
            RESULTACTION _resultAction = RESULTACTION.ERREURINCONNUE;

            string _matriculeUser    = context.GetValue <string>(MatriculeUser);
            string _codeDemande      = context.GetValue <string>(CodeDemande);
            string _actionOnDemande  = string.Empty;
            string _commentaireRejet = context.GetValue <string>(Commentaire);

            //On va mettre transmettre la demande à l'étape suivante
            try
            {
                DB_WORKFLOW dbWKF = new DB_WORKFLOW();

                //On récupère toutes les infos de la demande
                CsDemandeWorkflow dmdWorkflow = dbWKF.SelectLaDemande(_codeDemande);
                if (null != dmdWorkflow)
                {
                    //Infos sur la table de travail
                    CsTableDeTravail table = dbWKF.SelectAllTableDeTravail().Where(t => t.PK_ID == dmdWorkflow.FK_IDTABLETRAVAIL)
                                             .FirstOrDefault();

                    //La demande doit être forcement liée à une table de travail
                    //if (null != table)
                    //{
                    //Avant de rejeter  la demande on cherche les infos de l'étape actuelle
                    KeyValuePair <CsCopieDmdCircuit, CsCopieDmdConditionBranchement> CurrentStep = dbWKF.RecupererEtapeCourante(_codeDemande);
                    if (null != CurrentStep.Key)
                    {
                        //ici on pas besoin de condition, on rejette ooh
                        bool   LastStep = false;
                        string msgErr   = string.Empty;
                        //On rejette
                        if (dbWKF.RejeteDemande(_codeDemande, dmdWorkflow.FK_IDETAPEACTUELLE, ref msgErr, ref LastStep,
                                                ref dmdWorkflow))
                        {
                            //On a bien transmis,
                            dmdWorkflow.FK_IDSTATUS = (int)STATUSDEMANDE.Rejetee;       //Pour la prochaine étape
                            dmdWorkflow.DATEDERNIEREMODIFICATION = DateTime.Now;
                            _resultAction    = RESULTACTION.REJETEE;
                            _actionOnDemande = "Rejet de l'étape " + CurrentStep.Key.LIBELLEETAPE;
                            MessageErreur.Set(context, "");

                            #region CommentaireRejet

                            DBAdmUsers    dbUser = new DBAdmUsers();
                            CsUtilisateur u      = dbUser.GetUtilisateurByMatricule(_matriculeUser);

                            //ON supprime les autres commentaires de la demande concernée
                            dbWKF.DeleteCommentaireRejet(dmdWorkflow.PK_ID);
                            CsCommentaireRejet commentaire = new CsCommentaireRejet()
                            {
                                PK_ID           = Guid.NewGuid(),
                                DATECOMMENTAIRE = DateTime.Today.Date,
                                CODEDEMANDE     = dmdWorkflow.CODE_DEMANDE_TABLETRAVAIL,
                                COMMENTAIRE     = _commentaireRejet,
                                PIECE_JOINTE    = null,
                                FK_IDDEMANDE    = dmdWorkflow.PK_ID,
                                UTILISATEUR     = (null != u && null != u.NOM && string.Empty != u.NOM) ? u.NOM : _matriculeUser
                            };

                            dbWKF.InsertCommentaireRejet(new List <CsCommentaireRejet>()
                            {
                                commentaire
                            });

                            #endregion

                            #region Mise à jour de la demande et insertion des journaux
                            //On met à jour la demande
                            bool update = dbWKF.UpdateDemande(new List <CsDemandeWorkflow>()
                            {
                                dmdWorkflow
                            });
                            if (update)
                            {
                                //maintenant on écrit dans le journal de la demande
                                CsJournalDemandeWorkflow jrnal = new CsJournalDemandeWorkflow();
                                jrnal.PK_ID               = Guid.NewGuid();
                                jrnal.CODE_DEMANDE        = dmdWorkflow.CODE;
                                jrnal.FK_IDDEMANDE        = dmdWorkflow.PK_ID;
                                jrnal.LIBELLEACTION       = _actionOnDemande;
                                jrnal.DATEACTION          = DateTime.Today.Date;
                                jrnal.OBSERVATIONS        = string.Empty;
                                jrnal.MATRICULEUSERACTION = _matriculeUser;

                                dbWKF.InsertJournalDemande(new List <CsJournalDemandeWorkflow>()
                                {
                                    jrnal
                                });

                                //Suppresion de la demande dans la table des affectations user
                                dbWKF.SupprimerAffectationDemande(dmdWorkflow.CODE);
                            }
                            else
                            {
                                MessageErreur.Set(context, "Une erreur interne est survenue");
                                _resultAction = RESULTACTION.ERREURINCONNUE;
                            }

                            #endregion
                        }
                        else
                        {
                            //On na pas bien rejeté, donc on check si on est déjà à la 1ere étape
                            if (LastStep)
                            {
                                //Bon la, la demande est comme si elle est initiée
                                dmdWorkflow.FK_IDSTATUS = (int)STATUSDEMANDE.Rejetee;
                                _resultAction           = RESULTACTION.DEBUTDECIRCUIT;

                                //Si on est revenue au début du circuit, on n'a plus de journaux à insérer,
                                //car aucune action n'a été faite en principe
                                bool update = dbWKF.UpdateDemande(new List <CsDemandeWorkflow>()
                                {
                                    dmdWorkflow
                                });

                                //Suppresion de la demande dans la table des affectations user
                                dbWKF.SupprimerAffectationDemande(dmdWorkflow.CODE);

                                MessageErreur.Set(context, "");
                            }
                            else
                            {
                                //La la, ya vraiment une erreur qui s'est produite
                                _resultAction = RESULTACTION.ERREURINCONNUE;
                                MessageErreur.Set(context, msgErr);
                            }
                        }

                        GC.SuppressFinalize(dbWKF);
                        return(_resultAction);
                    }
                    else
                    {
                        GC.SuppressFinalize(dbWKF);
                        MessageErreur.Set(context, "Impossible de rejeter une demande n'étant à aucune étape");
                        return(RESULTACTION.ERREURINCONNUE);
                    }
                    //}
                    //else
                    //{
                    //    GC.SuppressFinalize(dbWKF);
                    //    MessageErreur.Set(context, "Impossible de rejeter une demande n'étant pas liée à une table de travail");
                    //    return RESULTACTION.ERREURINCONNUE;
                    //}
                }
                else
                {
                    GC.SuppressFinalize(dbWKF);
                    MessageErreur.Set(context, "Impossible de transmettre une demande qui n'existe pas");
                    return(RESULTACTION.ERREURINCONNUE);
                }
            }
            catch (Exception ex)
            {
                MessageErreur.Set(context, ex.Message);
                return(RESULTACTION.ERREURINCONNUE);
            }
        }