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)); }
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); }