public ActionResult Sondages(int?idSondage, int?idChoix) { List <SONDAGE> listeSondages = db.GetSondagesLocalises((int)Session["currentSecteur"], false, WebSecurity.CurrentUserId, Session); var unSondage = listeSondages.Where(s => s.ID == idSondage).ToList(); if (unSondage.Count() > 0) { SONDAGE sondageChoisi = unSondage.First(); var unChoix = sondageChoisi.CHOIXSONDAGE.Where(cs => cs.ID == idChoix); if (unChoix.Count() > 0) { var choixSelect = unChoix.First(); db.AjouterVoteSondage(WebSecurity.CurrentUserId, choixSelect.ID); listeSondages.RemoveAll(s => s.ID == choixSelect.IDSONDAGE); TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.SUCCES, Resources.Sondages.voteSucces); } else { TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.ERREUR, Resources.Sondages.choixInvalide); } } else { TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.ERREUR, Resources.Sondages.sondageInvalide); } ViewData[Constantes.CLE_SONDAGES] = listeSondages.Where(s => !String.IsNullOrEmpty(s.QUESTION) && s.CHOIXSONDAGES.Count > 0).ToList(); return(View()); }
public ActionResult AjoutSondage(SondageMultilangue sondageMulti) { if (!sondageMulti.langue1.langueChoisie) { foreach (var key in ModelState.Keys.Where(key => key.StartsWith("langue1."))) { ModelState[key].Errors.Clear(); } } ; if (!sondageMulti.langue2.langueChoisie) { foreach (var key in ModelState.Keys.Where(key => key.StartsWith("langue2."))) { ModelState[key].Errors.Clear(); } } ; if (sondageMulti.langue1.CHOIXSONDAGES == null) { sondageMulti.langue1.CHOIXSONDAGES = new List <CHOIXSONDAGE>(); } if (sondageMulti.langue2.CHOIXSONDAGES == null) { sondageMulti.langue2.CHOIXSONDAGES = new List <CHOIXSONDAGE>(); } int l1ChoixCount = sondageMulti.langue1.CHOIXSONDAGES.Count; if (l1ChoixCount > sondageMulti.nbChoix) { sondageMulti.langue1.CHOIXSONDAGES.RemoveRange(sondageMulti.nbChoix, l1ChoixCount - sondageMulti.nbChoix); } else { for (int i = l1ChoixCount; i < sondageMulti.nbChoix; i++) { sondageMulti.langue1.CHOIXSONDAGES.Add(new CHOIXSONDAGE()); } } int l2ChoixCount = sondageMulti.langue2.CHOIXSONDAGES.Count; if (l2ChoixCount > sondageMulti.nbChoix) { sondageMulti.langue2.CHOIXSONDAGES.RemoveRange(sondageMulti.nbChoix, l2ChoixCount - sondageMulti.nbChoix); } else { for (int i = l2ChoixCount; i < sondageMulti.nbChoix; i++) { sondageMulti.langue2.CHOIXSONDAGES.Add(new CHOIXSONDAGE()); } } if (!sondageMulti.langue1.langueChoisie && !sondageMulti.langue2.langueChoisie) { TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.ERREUR, Resources.Messages.aucuneLangueErreur); } else if (ModelState.IsValid && Math.Max(l1ChoixCount, l2ChoixCount) == sondageMulti.nbChoix) { try { SONDAGE sondageFR = null; SONDAGE sondagePT = null; if (sondageMulti.langue1.codeLangue == "FR") { sondageFR = sondageMulti.langue1; } else if (sondageMulti.langue2.codeLangue == "FR") { sondageFR = sondageMulti.langue2; } if (sondageMulti.langue1.codeLangue == "PT") { sondagePT = sondageMulti.langue1; } else if (sondageMulti.langue2.codeLangue == "PT") { sondagePT = sondageMulti.langue2; } ObjectParameter idNouvSondage = new ObjectParameter("idsondage", typeof(int)); db.AjouterSondage(sondageFR.NOM ?? "", sondagePT.NOM ?? "", sondageFR.QUESTION ?? "", sondagePT.QUESTION ?? "", sondageMulti.DATEDEBUT, sondageMulti.DATEFIN, WebSecurity.CurrentUserId, sondageMulti.IDSECTEUR, idNouvSondage); sondageMulti.IDSONDAGE = (int)idNouvSondage.Value; for (int i = 0; i < sondageMulti.nbChoix; i++) { db.AjouterChoixSondage(sondageMulti.IDSONDAGE, sondageFR.CHOIXSONDAGES[i].VALEUR ?? "", sondagePT.CHOIXSONDAGES[i].VALEUR ?? ""); } TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.SUCCES, Resources.Sondages.sondageAjoute); return(RedirectToAction("Sondages", "Sectoriel")); } catch (Exception ex) { TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.ERREUR, Resources.Sondages.sondageErreur + " (" + ex.GetType() + ")"); } } List <SelectListItem> listeNombreChoix = Enumerable.Range(2, 9).Select(e => new SelectListItem { Text = e.ToString(), Value = e.ToString() }).ToList(); ViewData[Constantes.CLE_NOMBRE_CHOIX] = listeNombreChoix; List <GetSecteurs_Result> listeSecteurs = db.GetSecteursLocalises(Session); ViewData[Constantes.CLE_SECTEURS] = listeSecteurs; return(View(sondageMulti)); }