public ActionResult CONSULTERINFOSGROUPECIBLE(GroupeCibleVM2 gcvm2)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONSULTER_INFOS_GROUPECIBLE"))
                {
                    //if (ModelState.IsValid)
                    //{
                    UTILISATEUR currentUser = dal.ObtenirUtilisateurParId(HttpContext.User.Identity.Name);
                    if (currentUser.UtilisateurID == gcvm2.Admin.Id)     //ou est un administrateur
                    {
                        GROUPECIBLE tempG = new GROUPECIBLE();
                        tempG.GroupeCibleID     = gcvm2.Id;
                        tempG.Intitule          = gcvm2.Intitule;
                        tempG.Objet             = gcvm2.Objet;
                        tempG.DateClotureGroupe = gcvm2.DateClotureGroupe;
                        tempG.Administrateur    = dal.ObtenirUtilisateurParId(gcvm2.Administrateur);
                        tempG.Type = dal.ObtenirTypeGroupeParId(gcvm2.type);
                        if (tempG.Administrateur != null && tempG.Type != null)
                        {
                            dal.ModifierGroupeCible(tempG);
                        }
                    }
                    //}

                    return(RedirectToAction("CONSULTERINFOSGROUPECIBLE", new { id = gcvm2.Id }));
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult CREERNOUVEAUGROUPE(GroupeCibleVM gcvm)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CREER_GROUPECIBLE"))
                {
                    if (ModelState.IsValid)
                    {
                        GROUPECIBLE gc = new GROUPECIBLE();
                        gc.Createur = dal.ObtenirUtilisateurParId(HttpContext.User.Identity.Name);

                        if (gc.Createur != null)
                        {
                            gc.Administrateur      = dal.ObtenirUtilisateurParId(gcvm.Administrateur);
                            gc.Type                = dal.ObtenirTypeGroupeParId(gcvm.Type);
                            gc.Intitule            = gcvm.Intitule;
                            gc.Objet               = gcvm.Objet;
                            gc.DateCreationGroupe  = DateTime.Now;
                            gc.DateClotureGroupe   = gcvm.DateClotureGroupe;
                            gc.DateArchivageGroupe = gcvm.DateClotureGroupe;
                            gc.Archived            = false;
                            gc.Closed              = false;

                            if (gc.Type != null && gc.Administrateur != null)
                            {
                                gc.GroupeCibleID = dal.EnregistrerGroupeCible(gc);
                            }

                            return(RedirectToAction("CONSULTERINFOSGROUPECIBLE", new { id = CRYPTAGE.StringHelpers.Decrypt(gc.GroupeCibleID) }));
                        }

                        return(RedirectToAction("SeConnecter", "CompteUtilisateur"));
                    }

                    else
                    {
                        ViewBag.ListeDesTypesDeGC    = dal.ObtenirTousLesTypesDeGC();
                        ViewBag.ListeDesUtilisateurs = dal.ObtenirTousLesUtilisateurs();
                        return(View("FormulaireCreationGroupeCible", gcvm));
                    }
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult AJOUTERMEMBRE(AddMembreGroup Container)
        {
            if (ModelState.IsValid)
            {
                using (IDAL dal = new Dal())
                {
                    if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "AJOUTER_MEMBRE_GROUPECIBLE"))
                    {
                        List <DOSSIER> listeDossier = new List <DOSSIER>();
                        GROUPECIBLE    groupe       = dal.ObtenirGroupeCibleParId(Container.IdGroupe);
                        if (groupe != null)
                        {
                            LIAISONDOSSIERGROUPECIBLE ldgc = new LIAISONDOSSIERGROUPECIBLE();
                            if (Container.IdsMembresAAjouter != null)
                            {
                                foreach (var m in Container.IdsMembresAAjouter)
                                {
                                    if (!String.IsNullOrEmpty(m))
                                    {
                                        DOSSIER d = dal.ObtenirDossierParId(m);
                                        if (d != null)
                                        {
                                            if (!dal.VerifierPresenceActiveDossierGroupe(d, groupe))
                                            {
                                                ldgc.Dossier         = d;
                                                ldgc.GC              = groupe;
                                                ldgc.DateIntegration = DateTime.Now;
                                                ldgc.Actif           = true;
                                                dal.EnregistrerLiaisonDossierGroupeCible(ldgc);
                                            }
                                        }
                                    }
                                }
                            }

                            return(RedirectToAction("CONSULTERINFOSGROUPECIBLE", new { id = CRYPTAGE.StringHelpers.Decrypt(groupe.GroupeCibleID) }));
                        }
                    }

                    else
                    {
                        ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                        return(View("Error"));
                    }
                }
            }

            return(View("Error"));
        }
        public ActionResult AJOUTERMEMBRE(String id)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "AJOUTER_MEMBRE_GROUPECIBLE"))
                {
                    if (!String.IsNullOrEmpty(id))
                    {
                        GROUPECIBLE groupe = dal.ObtenirGroupeCibleParId(CRYPTAGE.StringHelpers.Encrypt(id));
                        if (groupe != null)
                        {
                            //Verifions que l'user connecté est l'admin du groupe
                            if (dal.ObtenirUtilisateurParId(HttpContext.User.Identity.Name).UtilisateurID == groupe.Administrateur.UtilisateurID)
                            // Int32.Parse(HttpContext.User.Identity.Name)
                            {
                                //if (CRYPTAGE.StringHelpers.Decrypt(groupe.Type.Objet) == "Femmes Enceintes") //Charger les dossiers de femme
                                //{
                                ViewBag.IdGroupe   = groupe.GroupeCibleID;
                                ViewBag.CodeGroupe = CRYPTAGE.StringHelpers.Decrypt(groupe.Code);
                                List <SearchDossier> listDossier = dal.ObtenirListeDesPersonnesAdmissiblesAuGroupeFemmeEnceinte(groupe);
                                //Dans cette vue faudra initialiser un objet "Container" de type AddMembreGroup. En effet, c'est cet ob-
                                //jet qui sélectionne l'id du groupe et le tableau d'Ids de membres à ajouter
                                return(View("FormulaireAjoutMembreGroupeCible", listDossier));
                                //}
                            }
                            else
                            {
                                ViewBag.ErrorMessage = "Vous n'etes pas l'administrateur de ce Groupe. Donc vous ne pouvez pas y ajouter des Membres. ";
                                return(View("Error"));
                            }
                        }

                        ViewBag.ErrorMessage = "Choissez un Programme.";
                        return(View("Error"));
                    }

                    else
                    {
                        return(RedirectToAction("CONSULTERLISTEGROUPECIBLE"));
                    }
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult CONSULTERINFOSGROUPECIBLE(String id)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONSULTER_INFOS_GROUPECIBLE"))
                {
                    GROUPECIBLE groupeCible = dal.ObtenirGroupeCibleParId(CRYPTAGE.StringHelpers.Encrypt(id));
                    if (groupeCible != null)
                    {
                        GroupeCibleVM2 groupeCibleVM2 = new GroupeCibleVM2();
                        groupeCibleVM2 = dal.ConvertirGroupeCibleGroupeCibleVM2(groupeCible);

                        UTILISATEUR user = dal.ObtenirUtilisateurParId(HttpContext.User.Identity.Name);

                        if (user != null)
                        {
                            ViewBag.AffichePlus = false;
                            if (user == groupeCible.Administrateur) //Ou Rôle administrateur
                            {
                                ViewBag.AffichePlus = true;
                                List <UtilisateurVM2> listeUvm2 = new List <UtilisateurVM2>();
                                List <UTILISATEUR>    listeUser = dal.ObtenirTousLesUtilisateurs();
                                if (listeUser != null)
                                {
                                    foreach (var u in listeUser)
                                    {
                                        if (u != null)
                                        {
                                            listeUvm2.Add(dal.ConvertirUtilisateurUtilisateurVM2(u));
                                        }
                                    }
                                }
                                ViewBag.ListeDesAdministrateurs = listeUvm2;
                                List <TYPEGROUPE> tempLG = dal.ObtenirTousLesTypesDeGC();
                                foreach (var tg in tempLG)
                                {
                                    if (tg != null)
                                    {
                                        tg.Objet = CRYPTAGE.StringHelpers.Decrypt(tg.Objet);
                                    }
                                }
                                ViewBag.ListeDesTypesDeGC = tempLG;
                            }
                            List <LIAISONDOSSIERGROUPECIBLE> tempL = dal.ObtenirToutesLesLiaisonsDunGroupeParId(CRYPTAGE.StringHelpers.Encrypt(id), 1);
                            if (tempL != null)
                            {
                                groupeCibleVM2.Membres = new List <MembreGroupeCible>();
                                List <GROSSESSE> tempG = new List <GROSSESSE>();
                                foreach (var l in tempL)
                                {
                                    if (l != null)
                                    {
                                        tempG.AddRange(dal.ObtenirInfosGrossesseParLiaison(l.LiaisonDossierGroupeCibleID));
                                    }
                                }

                                foreach (var g in tempG)
                                {
                                    groupeCibleVM2.Membres.Add(dal.ConvertirGrossesseMembreGroupeCible(g));
                                }
                            }
                        }

                        return(View("ConsulterInfoGroupeCible", groupeCibleVM2));
                    }

                    return(View("Error"));
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }