コード例 #1
0
        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>"));
        }
コード例 #2
0
        // 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));
        }