Exemple #1
0
        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());
        }
Exemple #2
0
        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));
        }