public ActionResult Mes_Disciplines() { var user = (Enseignant)System.Web.HttpContext.Current.Session["enseignant"]; var Disciplines = _dbContext.Enseignants.SingleOrDefault(u => u.Id == user.Id).Disciplines; AjoutViewModel ajout = new AjoutViewModel(); ajout.Data = (Dictionary <Niveau, List <Groupe> >)Session["data"]; ajout.Disciplines = _dbContext.Disciplines.ToList(); ajout.CurrentDisciplines = Disciplines.ToList(); return(View(ajout)); }
public ActionResult Mes_Disciplines(AjoutViewModel ajout) { //var niveau = _dbContext.Niveaux.SingleOrDefault(n => n.niveau == ajout.Niveau).Disciplines.SingleOrDefault(d=> d.nomDiscipline == ajout.Discipline); //var t=niveau; //preparing the viewmodel for the view var user = (Enseignant)System.Web.HttpContext.Current.Session["enseignant"]; var Disciplines = _dbContext.Enseignants.SingleOrDefault(u => u.Id == user.Id).Disciplines; AjoutViewModel ajouter = new AjoutViewModel(); ajouter.Data = (Dictionary <Niveau, List <Groupe> >)Session["data"]; ajouter.Disciplines = _dbContext.Disciplines.ToList(); ajouter.CurrentDisciplines = Disciplines.ToList(); //getting the selected "niveau" var niveau = _dbContext.Niveaux.SingleOrDefault(n => n.niveau.Equals(ajout.Niveau)); var d = new Discipline() { nomDiscipline = ajout.Discipline }; niveau.Disciplines.Add(d); //adding if not exists (groupe/discipline) var groupe = _dbContext.Groupes.SingleOrDefault(g => g.nomGroupe.Equals(ajout.Groupe)); var discipline = _dbContext.Niveaux.SingleOrDefault(n => n.niveau.Equals(ajout.Niveau)).Disciplines.SingleOrDefault(di => di.nomDiscipline == ajout.Discipline); var groupes = _dbContext.Enseignants.Single(e => e.Id == user.Id).Groupes; var test = groupes.Single(g => g.nomGroupe.Equals(ajout.Groupe)).Disciplines.SingleOrDefault(di => di.Id == discipline.Id); if (test == null) { //adding to the join table (groupe-discipline) var disciplines = groupes.Single(di => di.nomGroupe.Equals(ajout.Groupe)).Disciplines; disciplines.Add(discipline); ModelState.AddModelError("done", "Discipline ajouté au groupe sélectioné !"); _dbContext.Enseignants.SingleOrDefault(c => c.Id == user.Id).Groupes.Add(groupe); //adding to join table (enseignant-discipline) _dbContext.Enseignants.SingleOrDefault(e => e.Id == user.Id).Disciplines.Add(discipline); _dbContext.SaveChanges(); return(View(ajouter)); } ModelState.AddModelError("exists", "Discipline existe déja pour le groupe sélectioné !"); return(View(ajout)); }