public ActionResult Create(NouvelleCommunication modeleCommunication, HttpPostedFileBase[] files)
        {
            if (ModelState.IsValid)
            {
                // TODO: Lié l'utilisateur connecté à la communication
                modeleCommunication.communication.idUTIL  = 1;
                modeleCommunication.communication.dateCOM = DateTime.Now;

                db.Communications.Add(modeleCommunication.communication);
                db.SaveChanges();

                Communication communication = modeleCommunication.communication;
                List <String> pathFichiers  = EnregistrerPiecesJointes(files, communication);

                // Envoie du courriel
                foreach (String courriel in GenererListeCourriels(modeleCommunication))
                {
                    //EnvoyerCourriel(courriel, communication.titreCOM, communication.contenuCOM, pathFichiers);
                }

                return(RedirectToAction("Details"));
            }

            ViewBag.secteurs = db.Secteurs.Where(s => s.idCLUB == idClub).ToList();
            ViewBag.niveaux  = db.NiveauSessions.Where(n => n.Niveau.Secteur.idCLUB == idClub && n.Session.estActif == true).ToList();
            ViewBag.groupes  = db.Groupes.Where(g => g.NiveauSession.Niveau.Secteur.idCLUB == idClub && g.NiveauSession.Session.estActif == true).ToList();
            return(View(modeleCommunication));
        }
        protected List <String> GenererListeCourriels(NouvelleCommunication modeleCommunication)
        {
            List <String> courriels = new List <String>();

            // courriel par les secteurs
            List <int> idSecteurs = new List <int>();

            if (modeleCommunication.SelectedSecteurId != null)
            {
                idSecteurs = modeleCommunication.SelectedSecteurId.ToList();
            }
            foreach (int idSecteur in idSecteurs)
            {
                foreach (var membre in db.P_SELECT_MembreSessionActiveParSecteur(idSecteur))
                {
                    String courriel = membre.courriel;

                    if (!courriels.Contains(courriel))
                    {
                        courriels.Add(courriel);
                    }
                }
            }

            // courriels par niveauSession
            List <int> idNiveaux = new List <int>();

            if (modeleCommunication.SelectedNiveauId != null)
            {
                idNiveaux = modeleCommunication.SelectedNiveauId.ToList();
            }
            foreach (int idNiveau in idNiveaux)
            {
                foreach (var membre in db.P_SELECT_MembreSessionActiveParNiveauSession(idNiveau))
                {
                    String courriel = membre.courriel;

                    if (!courriels.Contains(courriel))
                    {
                        courriels.Add(courriel);
                    }
                }
            }

            // courriels par groupe
            List <int> idGroupes = new List <int>();

            if (modeleCommunication.SelectedGroupId != null)
            {
                idGroupes = modeleCommunication.SelectedGroupId.ToList();
            }
            foreach (int idGroupe in idGroupes)
            {
                Groupe groupe = db.Groupes.Find(idGroupe);
                foreach (var membre in groupe.Membres)
                {
                    String courriel = membre.courriel;

                    if (!courriels.Contains(courriel))
                    {
                        courriels.Add(courriel);
                    }
                }
            }

            return(courriels);
        }