Пример #1
0
        public ActionResult searchFilterQuestionnaire(ViewModelQuestionnaireFiltre qf)/*(DateTime? dateDepart, DateTime dateFin,Boolean? actif,int? idSite)*/
        {
            Tools.Logger.Ecrire(Tools.Logger.Niveau.Info, string.Format("searchFilterQuestionnaire.Questionnaire.Entrée(date depart : {0}, dateFin : {1}, actif : {2}, idSite : {3})", qf.dateDepart, qf.dateFin, qf.actif, qf.idSite));

            ViewModelQuestionnaireSite model = new ViewModelQuestionnaireSite();

            try
            {
                model       = DALQuestionnaire.searchFilterQuestionnaire(qf);
                model.sites = DALSite.SelectAllSite();
            }
            catch (Exception e)
            {
                Tools.Logger.Ecrire(Tools.Logger.Niveau.Erreur, string.Format("searchFilterQuestionnaire.Questionnaire.Exception(date depart : {0}, dateFin : {1}, actif : {2}, idSite : {3}, exception : {4})", qf.dateDepart, qf.dateFin, qf.actif, qf.idSite, e));
                RedirectToAction("ListeQuestionnaires", "Questionnaire", new { erreur = ErrorList.searchFilterQuestionnaire });
            }
            Tools.Logger.Ecrire(Tools.Logger.Niveau.Info, string.Format("searchFilterQuestionnaire.Questionnaire.Sortie(nombre de questionnaire après tri{0})", model.questionnaires.Count));


            return(View("ListeQuestionnaires", model));
        }
Пример #2
0
        internal static ViewModelQuestionnaireSite searchFilterQuestionnaire(ViewModelQuestionnaireFiltre qf)
        {
            QCMAppBDDEntities          qd          = new QCMAppBDDEntities();
            ViewModelQuestionnaireSite modelRetour = new ViewModelQuestionnaireSite();

            //var results = qd.Questionnaires.Where(x => x.date >= qf.dateDepart && x.date <= qf.dateFin).ToList();
            //voir pour le site car ce n'est pas dans la meme table. Faire un inner join

            // datedepart-dateFin-actif-idSite
            if (qf.dateDepart != null && qf.dateFin != null && qf.actif == true && qf.idSite != null)
            {
                modelRetour.questionnaires = qd.Questionnaires.Where(x => x.date >= qf.dateDepart && x.date <= qf.dateFin && x.actif == true).ToList();
            }
            // datedepart-dateFin-actif
            if (qf.dateDepart != null && qf.dateFin != null && qf.actif == true && qf.idSite == null)
            {
                modelRetour.questionnaires = qd.Questionnaires.Where(x => x.date >= qf.dateDepart && x.date <= qf.dateFin && x.actif == true).ToList();
            }
            // dateDepart-dateRetour
            if (qf.dateDepart != null && qf.dateFin != null && qf.actif == false && qf.idSite == null)
            {
                modelRetour.questionnaires = qd.Questionnaires.Where(x => x.date >= qf.dateDepart && x.date <= qf.dateFin).ToList();
            }
            //
            if (qf.dateDepart == null && qf.dateFin == null && qf.actif == false && qf.idSite == null)
            {
                modelRetour.questionnaires = SelectAll();
            }
            // actif
            if (qf.dateDepart == null && qf.dateFin == null && qf.actif == true && qf.idSite == null)
            {
                modelRetour.questionnaires = modelRetour.questionnaires = qd.Questionnaires.Where(x => x.actif == true).ToList();
            }
            // actif-site
            if (qf.dateDepart == null && qf.dateFin == null && qf.actif == true && qf.idSite != null)
            {
                List <Questionnaires> questionnaireTrie = new List <Questionnaires>();
                //var questionnaires = SelectAll();
                var questionnaires = qd.Questionnaires.Where(x => x.actif == true).ToList();
                foreach (var questionnaire in questionnaires)
                {
                    foreach (var site in questionnaire.Site)
                    {
                        if (site.Id == qf.idSite)
                        {
                            questionnaireTrie.Add(questionnaire);
                        }
                    }
                }
                modelRetour.questionnaires = questionnaireTrie;

                //modelRetour.questionnaires.AddRange(questionnaires.Where(q => q.Site.Where(s => s.Id == qf.idSite).Any()).Select(q => q));
            }
            //site
            if (qf.dateDepart == null && qf.dateFin == null && qf.actif == false && qf.idSite != null)
            {
                List <Questionnaires> questionnaireTrie = new List <Questionnaires>();
                var questionnaires = SelectAll();
                foreach (var questionnaire in questionnaires)
                {
                    foreach (var site in questionnaire.Site)
                    {
                        if (site.Id == qf.idSite)
                        {
                            questionnaireTrie.Add(questionnaire);
                        }
                    }
                }
                modelRetour.questionnaires = questionnaireTrie;
            }
            modelRetour.dateDepart = (DateTime)qf.dateDepart.GetValueOrDefault();
            modelRetour.dateFin    = (DateTime)qf.dateFin.GetValueOrDefault();
            modelRetour.actif      = (Boolean)qf.actif.GetValueOrDefault();
            modelRetour.idSite     = (int)qf.idSite.GetValueOrDefault();
            if (qf.idSite.HasValue)
            {
                modelRetour.nomSite = DALSite.FindById(modelRetour.idSite).nom;
            }

            //if (qf.idSite.HasValue)
            //    modelRetour.siteFiltre = SiteManager.FindById((int)qf.idSite);

            return(modelRetour);
        }