public ActionResult AjoutSondage() { SondageMultilangue sondageMulti = new SondageMultilangue(); sondageMulti.langue1 = new SONDAGE(); sondageMulti.langue2 = new SONDAGE(); var langue = (Session["Culture"] ?? "").ToString().ToUpper(); if (langue == "FR") { sondageMulti.langue1.nomLangue = Resources.Shared.choixLangueFR; sondageMulti.langue2.nomLangue = Resources.Shared.choixLanguePT; sondageMulti.langue1.codeLangue = "FR"; sondageMulti.langue2.codeLangue = "PT"; } else { sondageMulti.langue1.nomLangue = Resources.Shared.choixLanguePT; sondageMulti.langue2.nomLangue = Resources.Shared.choixLangueFR; sondageMulti.langue1.codeLangue = "PT"; sondageMulti.langue2.codeLangue = "FR"; } sondageMulti.langue1.langueChoisie = true; sondageMulti.langue2.langueChoisie = false; sondageMulti.langue1.CHOIXSONDAGES = new List <CHOIXSONDAGE>(); sondageMulti.langue2.CHOIXSONDAGES = new List <CHOIXSONDAGE>(); List <SelectListItem> listeNombreChoix = Enumerable.Range(2, 9).Select(e => new SelectListItem { Text = e.ToString(), Value = e.ToString() }).ToList(); ViewData[Constantes.CLE_NOMBRE_CHOIX] = listeNombreChoix; sondageMulti.nbChoix = 2; for (int i = 0; i < sondageMulti.nbChoix; i++) { sondageMulti.langue1.CHOIXSONDAGES.Add(new CHOIXSONDAGE { VALEUR = "" }); sondageMulti.langue2.CHOIXSONDAGES.Add(new CHOIXSONDAGE { VALEUR = "" }); } List <GetSecteurs_Result> listeSecteurs = db.GetSecteursLocalises(Session); ViewData[Constantes.CLE_SECTEURS] = listeSecteurs; return(View(sondageMulti)); }
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)); }