Esempio n. 1
0
        public bool CoursCompetence([FromBody][Bind("NomCours,CodeCompetence, Complete")] CompetenceCoursVM coursCompetencesVM)
        {
            List <CoursCompetences> listecoursCompetence = this._context.CoursCompetences.ToList();
            CoursCompetences        coursCompetences     = new CoursCompetences
            {
                NoCours        = this._context.Cours.ToList().Find(x => x.NomCours == coursCompetencesVM.NomCours).NoCours,
                CodeCompetence = coursCompetencesVM.CodeCompetence,
                Complete       = coursCompetencesVM.Complete
            };

            if (listecoursCompetence.Any(x => x.NoCours == coursCompetences.NoCours && x.CodeCompetence == coursCompetences.CodeCompetence))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> AjouterNbHeures([FromBody][Bind("NomCours,CodeCompetence,NbHCoursCompetence")] List <CompetenceCoursVM> ListecoursComp)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Obtenir tout els cours et competences differents
                    List <string> listeNomCours       = new List <string>();
                    List <string> listeCodeCompetence = new List <string>();

                    foreach (CompetenceCoursVM coursComp in ListecoursComp)
                    {
                        string nomCours = coursComp.NomCours;
                        if (!listeNomCours.Contains(nomCours))
                        {
                            listeNomCours.Add(nomCours);
                        }

                        string codeCompetence = coursComp.CodeCompetence;
                        if (!listeCodeCompetence.Contains(codeCompetence))
                        {
                            listeCodeCompetence.Add(codeCompetence);
                        }
                    }

                    foreach (string cours in listeNomCours)
                    {
                        int compteurCours = 0;
                        int totalCours    = CalculerHeuresCours(this._context.Cours.ToList().Find(x => x.NomCours == cours).PonderationCours);
                        foreach (CompetenceCoursVM coursComp in ListecoursComp)
                        {
                            //Ne faire que le cours sélectionné
                            if (coursComp.NomCours == cours)
                            {
                                Cours  coursSelection = _context.Cours.ToList().Find(x => x.NomCours == coursComp.NomCours);
                                string noCours        = coursSelection.NoCours;
                                string codeCompetence = coursComp.CodeCompetence;
                                int    nbHeure        = coursComp.NbHCoursCompetence;
                                //Ajouter au grand compteur
                                compteurCours += nbHeure;
                                //Envoyer un erreur imédiatement si le nombre d'heure totale est dépassé
                                if (compteurCours > totalCours)
                                {
                                    return(Ok("Trop d'heures pour le cours"));
                                }

                                //Effectuer les validations pour respecter la pondération du cours et le nombre d'heure de la compétence dans la session
                                //Trouver le bon cours/compétence
                                CoursCompetences upDateCoursComp = this._context.CoursCompetences.ToList().Find(x => x.NoCours == noCours && x.CodeCompetence == codeCompetence);
                                //Ajouter le nombre d'heure
                                upDateCoursComp.NbHcoursCompetence = nbHeure;
                            }
                        }

                        //S'assurer le le nombre d'heure corresponde exactement au total
                        if (compteurCours != totalCours)
                        {
                            return(Ok("Il manque d'heures pour le cours"));
                        }
                    }

                    foreach (string competence in listeCodeCompetence)
                    {
                        int    compteurTotalCompetence = 0;
                        string coursQuelquonque        = ListecoursComp.First().NomCours;
                        string session         = this._context.Cours.ToList().Find(x => x.NomCours == coursQuelquonque).NomSession;
                        int    totalCompetence = this._context.RepartitionHeuresession.ToList().Find(x => x.CodeCompetence == competence && x.NomSession == session).NbhCompetenceSession;
                        foreach (CompetenceCoursVM coursComp in ListecoursComp)
                        {
                            if (coursComp.CodeCompetence == competence)
                            {
                                List <RepartirHeureCompetence> listRepartirCompetence = new List <RepartirHeureCompetence>();
                                //Liste des compétences contenues dans ce cours
                                //Trouver le noCours
                                string numCours = this._context.Cours.ToList().Find(x => x.NomCours == coursComp.NomCours).NoCours;
                                List <CoursCompetences> listeCoursCompetence = this._context.CoursCompetences.ToList().FindAll(x => x.NoCours == numCours);
                                //Faire un foreach de chaque compétence pour s'assurer que le nombre d'heures de ceux-ci soit respecté
                                int nbHeures = coursComp.NbHCoursCompetence;

                                compteurTotalCompetence += nbHeures;
                                if (compteurTotalCompetence > totalCompetence)
                                {
                                    return(Ok("Trop d'heure pour la compétence"));
                                }
                            }
                        }


                        if (compteurTotalCompetence != totalCompetence)
                        {
                            return(Ok("Il manque d'heures pour la compétence"));
                        }
                    }

                    //Sauvegarder
                    await _context.SaveChangesAsync();

                    return(Ok("Nombre d'heures ajouté avec succès"));
                }
                return(BadRequest("error"));
            }
            catch (Exception e)
            {
                return(View("\\Views\\Shared\\page_erreur.cshtml"));
            }
        }