public async Task <IActionResult> Add([FromBody] Periode periode) { if (!ModelState.IsValid) { ModelState.AddModelError("periode", "Ce format de periode est invalide"); return(BadRequest(ModelState)); } ModelPeriode modelPeriode = new ModelPeriode(); modelPeriode.SetModelPeriode(periode, new Jour()); foreach (var p in repository.List()) { ModelPeriode model = new ModelPeriode(); model.SetModelPeriode(p, new Jour()); if (modelPeriode.OverLap(model)) { ModelState.AddModelError("periode", $"Cette periode chevauche la periode {model.Debut.Hour}h{model.Debut.Minute} à {model.Fin.Hour}h{model.Fin.Minute}"); return(BadRequest(ModelState)); } } periode = repository.Save(periode); return(Ok(periode)); }
public void OverLap() { ModelPeriode modelCompare = new ModelPeriode(); ModelPeriode model = new ModelPeriode(); modelCompare.Debut = new LocalTime(10, 30); modelCompare.Fin = new LocalTime(12, 30); modelCompare.Jour = DayOfWeek.Monday; model.Debut = new LocalTime(09, 30); model.Fin = new LocalTime(12, 30); model.Jour = DayOfWeek.Monday; Assert.True(model.OverLap(modelCompare)); }
public async Task <IActionResult> Add([FromBody] Time time, int semestre) { if (!ModelState.IsValid) { ModelState.AddModelError("time", "formulaire invalide"); return(BadRequest(ModelState)); } if (!periodeRepository.PeriodeExists(time.Idperiode)) { ModelState.AddModelError("periode", "Cette periode n'existe pas"); return(BadRequest(ModelState)); } if (!jourRepository.JourExists(time.Idjour)) { ModelState.AddModelError("jour", "Ce jour n'existe pas"); return(BadRequest(ModelState)); } if (!salleRepository.SalleExists(time.Idsalle)) { ModelState.AddModelError("salle", "Cet salle n'existe pas"); return(BadRequest(ModelState)); } if (!programmeRepository.ProgrammeExists(time.Idprogramme)) { ModelState.AddModelError("programme", "Cet ue n'existe pas"); return(BadRequest(ModelState)); } Periode periode = periodeRepository[time.Idperiode]; Jour jour = jourRepository[time.Idjour]; ModelPeriode modelPeriode = new ModelPeriode(); modelPeriode.SetModelPeriode(periode, jour); Salle salle = salleRepository[time.Idsalle]; Programme programme = programmeRepository[time.Idprogramme]; Compte enseignant = enseignantRepository[programme.Enseignant]; //verifion que la salle est libre foreach (var t in repository.TimeTableOfSalle(salle.Id, semestre)) { Periode p = periodeRepository[t.Idperiode]; Jour j = jourRepository[t.Idjour]; ModelPeriode model = new ModelPeriode(); model.SetModelPeriode(p, j); if (modelPeriode.OverLap(model)) { ModelState.AddModelError("salle", $"La salle {salle.Nom} n'est pas libre le {j.Nom} de {model.Debut.Hour}h{model.Debut.Minute} à {model.Fin.Hour}h{model.Fin.Minute}."); return(BadRequest(ModelState)); } } //verifion si l'enseigiant es libre foreach (var t in repository.TimeTableOfEnseignant(enseignant.Matricule, semestre)) { Periode p = periodeRepository[t.Idperiode]; Jour j = jourRepository[t.Idjour]; ModelPeriode model = new ModelPeriode(); model.SetModelPeriode(p, j); if (modelPeriode.OverLap(model)) { ModelState.AddModelError("enseignant", $"L'enseignant {enseignant.MatriculeNavigation.Nom} n'est pas libre le {j.Nom} de {model.Debut.Hour}h{model.Debut.Minute} à {model.Fin.Hour}h{model.Fin.Minute}."); return(BadRequest(ModelState)); } } //time = repository.Save(time); return(Ok(time)); }