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>"));
        }
        public ActionResult ajouterMission(MVM mission, int id_ordre, int id_marche)
        {
            //ajout de domaine
            int           budget_mission = 0, budget_restant = 0;
            Participation par = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).First();
            ICollection <Participation_profil> listparti = par.Participation_profil;

            foreach (var item in mission.listeprofils)
            {
                budget_mission += item.charge * (int)listparti.Where(a => a.Profil.libelle_profil == item.libelle).Select(a => a.cout_unit_ht).FirstOrDefault();
            }

            Participation participation = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).FirstOrDefault();
            Marché        marche        = dbmetier.Marché.Find(id_marche);

            budget_restant = (int)participation.budget_prestation - (int)marche.montant_total;
            if (budget_mission <= budget_restant)
            {
                marche.montant_total += budget_mission;
                Ordre_service ordre = dbmetier.Ordre_service.Find(id_ordre);
                ordre.date_modification = System.DateTime.Now;
                Domaine domaine = dbmetier.Domaines.Where(x => x.libelle_domaine == mission.mission.Domaine.libelle_domaine).FirstOrDefault();
                Mission mision  = new Mission
                {
                    libelle_mission       = mission.mission.libelle_mission,
                    id_domaine_mission_fk = domaine.id_domaine,
                    id_marche_mission     = marche.id_marché
                    ,
                    id_ordreservice_fk = ordre.id_ordre_service
                };
                dbmetier.Missions.Add(mision);
                dbmetier.SaveChanges();
                foreach (var profillib in mission.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(null);
        }
        public ActionResult annler_mision(int id_marche, int id_mission_annulée)
        {
            Marché mar = dbmetier.Marché.Find(id_marche);
            Affectation_profils aff;
            Mission             mission = dbmetier.Missions.Where(a => a.id_mission == id_mission_annulée).FirstOrDefault();

            mission.date_fin_mission = System.DateTime.Now;
            ICollection <Affectation_profils> listaf = new List <Affectation_profils>();



            int budget_mission = 0;

            foreach (var item in mission.Affectation_profils)
            {
                Profil               profil    = item.Profil;
                Participation        par       = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).FirstOrDefault();
                Participation_profil particpro = dbmetier.Participation_profil.Where(a => a.id_profil_fk == profil.id_profil && a.id_participation_fk == (int)par.id_participation).FirstOrDefault();
                budget_mission += (int)item.charge_profil * (int)particpro.cout_unit_ht;
            }
            mar.montant_total -= budget_mission;
            dbmetier.SaveChanges();


            foreach (var item in mission.Affectation_profils)
            {
                aff = new Affectation_profils {
                    charge_profil = item.charge_profil, id_affectation = item.id_affectation, id_mission_affectation = item.id_mission_affectation, id_profils_affectation = item.id_profils_affectation, Mission = item.Mission, Profil = item.Profil
                };

                listaf.Add(aff);
            }
            foreach (var item in listaf)
            {
                aff = dbmetier.Affectation_profils.Where(a => a.id_affectation == item.id_affectation).FirstOrDefault();
                dbmetier.Affectation_profils.Remove(aff);
            }
            dbmetier.SaveChanges();
            return(RedirectToAction("Dashboardresp", new { id_marche = id_marche }));;
        }