public ActionResult Create(MarcheViewModel marche) { var userId = User.Identity.GetUserId(); Projet pro = dbmetier.Projets.Find(marche.id_projet); Marché mar = new Marché(); mar.Délai = marche.Délai; mar.date_fin = marche.date_fin; mar.date_debut = System.DateTime.Now; mar.budget_prevu = marche.budget_prevu; mar.id_projet_fk = marche.id_projet; mar.matricule = marche.matricule; mar.id_responsable_fk = userId; dbmetier.Marché.Add(mar); dbmetier.SaveChanges(); foreach (var item in marche.listeprestataire) { Models.Participation par = new Models.Participation(); par.id_marché_participation = mar.id_marché; par.id_prestataire_participation = item; dbmetier.Participations.Add(par); dbmetier.SaveChanges(); } foreach (MissionViewModel item in marche.listMission) { //ajout de domaine Domaine domaine = dbmetier.Domaines.Where(x => x.libelle_domaine == item.domaine).FirstOrDefault(); Mission mision = new Mission { id_mission = item.id_mission, libelle_mission = item.libelle_mission, id_domaine_mission_fk = domaine.id_domaine, id_marche_mission = mar.id_marché }; dbmetier.Missions.Add(mision); dbmetier.SaveChanges(); foreach (var profillib in item.listeprofils) { Profil prof = dbmetier.Profils.Where(x => x.libelle_profil == profillib.libelle).FirstOrDefault(); Affectation_profils afectation = new Affectation_profils { id_mission_affectation = mision.id_mission, id_profils_affectation = prof.id_profil, charge_profil = profillib.charge }; dbmetier.Affectation_profils.Add(afectation); dbmetier.SaveChanges(); } } return(Content("<script language='javascript' type='text/javascript'>alert('sucsssflly!');</script>")); }
// GET: Marche/Details/5 //prestataire public ActionResult Details_Participation(int id_marche) { // fonction de vérification de presence du profil bool test(string str1, List <Models.viewmodel.Profil_cout_chargeVM> pc) { foreach (var it in pc) { if (str1 == it.libelle) { return(true); } } return(false); } var marche = dbmetier.Marché.Find(id_marche); var listeMission = dbmetier.Missions.Where(a => a.id_marche_mission == id_marche).ToList(); var Projet = dbmetier.Projets.Where(a => a.id_projet == marche.id_projet_fk).FirstOrDefault(); ViewBag.responsable = dbmetier.Responsable_marché.Where(r => r.id_responsable == marche.id_responsable_fk).FirstOrDefault(); ViewBag.projet = Projet; List <MissionViewModel> listmissionvm = new List <MissionViewModel>(); MissionViewModel element = new MissionViewModel();; List <Models.viewmodel.Profil_cout_chargeVM> profilschrgelist = new List <Models.viewmodel.Profil_cout_chargeVM>(); Models.viewmodel.Profil_cout_chargeVM profilchar = new Models.viewmodel.Profil_cout_chargeVM(); foreach (var item in listeMission) { element = new MissionViewModel(); element.libelle_mission = item.libelle_mission; element.date_debut_mission = item.date_debut_mission; element.date_fin_mission = item.date_fin_mission; element.domaine = item.Domaine.libelle_domaine; List <Affectation_profils> liste_afectation = dbmetier.Affectation_profils.Where(a => a.id_mission_affectation == item.id_mission).ToList(); profilschrgelist = new List <Models.viewmodel.Profil_cout_chargeVM>(); foreach (var item2 in liste_afectation) { profilchar = new Models.viewmodel.Profil_cout_chargeVM { charge = (int)item2.charge_profil, libelle = item2.Profil.libelle_profil }; profilschrgelist.Add(profilchar); } element.listeprofils = profilschrgelist; listmissionvm.Add(element); } var marcheviewmodel = new MarcheViewModel { id_marché = marche.id_marché, date_debut = marche.date_debut, matricule = marche.matricule, date_fin = marche.date_fin, Délai = marche.Délai, budget_prevu = marche.budget_prevu, listMission = listmissionvm }; // une liste pour remplir le budget de participation List <Models.viewmodel.Profil_cout_chargeVM> liste_chargeparprofil = new List <Models.viewmodel.Profil_cout_chargeVM>(); List <Models.viewmodel.Profil_cout_chargeVM> liste_chargeparprofilnontrie = new List <Models.viewmodel.Profil_cout_chargeVM>(); foreach (MissionViewModel smiya in marcheviewmodel.listMission) { liste_chargeparprofilnontrie.AddRange(smiya.listeprofils); } foreach (Models.viewmodel.Profil_cout_chargeVM elem in liste_chargeparprofilnontrie) { if (!test(elem.libelle, liste_chargeparprofil)) { liste_chargeparprofil.Add(new Models.viewmodel.Profil_cout_chargeVM { libelle = elem.libelle, charge = elem.charge }); } else { foreach (Models.viewmodel.Profil_cout_chargeVM pc in liste_chargeparprofil) { if (elem.libelle == pc.libelle) { pc.charge = elem.charge + pc.charge; } } } } ViewBag.liste_chargeparprofil = liste_chargeparprofil; return(View(marcheviewmodel)); }