/// <summary> /// Maj des Etats des éléments de suivi du dessus /// </summary> /// <param name="suiviNiveau"></param> private void MajEtats(SuiviNiveau suiviNiveau) { var suiviPrerequis = _context.SuiviPrerequis.Where(x => x.Id == suiviNiveau.SuiviPrerequis.SuiviCompetence.Id) .Include(s => s.LesSuiviNiveaux) .Single(); suiviPrerequis.Etat = suiviPrerequis.EtatMaj(); _context.Update(suiviPrerequis); var suiviCompetence = _context.SuiviCompetence.Where(x => x.Id == suiviPrerequis.SuiviCompetence.Id) .Include(s => s.LesSuiviPrerequis) .Single(); suiviCompetence.Etat = suiviCompetence.EtatMaj(); _context.Update(suiviCompetence); var suivi = _context.Suivi.Where(x => x.Id == suiviCompetence.Suivi.Id) .Include(s => s.LesSuiviCompetences) .Single(); suivi.Etat = suivi.EtatMaj(); _context.Update(suivi); }
// To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. public async Task <IActionResult> Create(int?id) { if (id == null) { return(NotFound()); } else { Patient patient = await _context.Patient.Where(x => x.Id == id).SingleAsync(); var listeDomaines = await _context.Domaine.ToListAsync(); PatientUser patientUserAjoute = new PatientUser { Patient = patient, ApplicationUser = await _userManager.GetUserAsync(User) }; _context.Add(patientUserAjoute); foreach (Domaine d in listeDomaines) { Suivi suiviAjoute = new Suivi { Patient = patient, Domaine = d }; _context.Add(suiviAjoute); await _context.SaveChangesAsync(); var listeDomaineCompetences = await _context.DomaineCompetence.Where(x => x.Domaine == d) .Include(domaineComp => domaineComp.Competence) .ToListAsync(); foreach (DomaineCompetence dc in listeDomaineCompetences) { var uneCompetence = dc.Competence; SuiviCompetence suiviCompetenceAjoute = new SuiviCompetence { Competence = uneCompetence, Suivi = suiviAjoute, Etat = EtatEnum.e1 }; _context.Add(suiviCompetenceAjoute); await _context.SaveChangesAsync(); var listeCompetencePrerequis = await _context.CompetencePrerequis.Where(x => x.Competence == uneCompetence) .Include(compPrerequis => compPrerequis.Prerequis) .ToListAsync(); foreach (CompetencePrerequis cp in listeCompetencePrerequis) { var unPrerequis = cp.Prerequis; SuiviPrerequis suiviPrerequisAjoute = new SuiviPrerequis { Prerequis = unPrerequis, SuiviCompetence = suiviCompetenceAjoute, Etat = EtatEnum.e1 }; _context.Add(suiviPrerequisAjoute); await _context.SaveChangesAsync(); var listePrerequisNiveaux = await _context.PrerequisNiveau.Where(x => x.Prerequis == unPrerequis) .Include(prerequisNiv => prerequisNiv.Niveau) .ToListAsync(); foreach (PrerequisNiveau pn in listePrerequisNiveaux) { var unNiveau = pn.Niveau; SuiviNiveau suiviNiveauAjoute = new SuiviNiveau { Niveau = unNiveau, SuiviPrerequis = suiviPrerequisAjoute, Etat = EtatEnum.e1 }; _context.Add(suiviNiveauAjoute); int nbSuiviExercicesDefaut = 5; for (int i = 0; i < nbSuiviExercicesDefaut; i++) { SuiviExercice suiviExerciceAjoute = new SuiviExercice { Valide = false, SuiviNiveau = suiviNiveauAjoute, }; _context.Add(suiviExerciceAjoute); } await _context.SaveChangesAsync(); } } } } ; await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Patients")); } }