public bool DeleteSeance(int id) { try { if (db.seances.Find(id) != null) { ManagerProgrammation managerProgs = new ManagerProgrammation(); List <programmation> progs = managerProgs.GetAllprogramtionFromSeance(id); for (int i = 0; i < progs.Count; i++) { managerProgs.DeleteProgrammation(progs[i].id); } seance seance = db.seances.Find(id); db.seances.Remove(seance); db.SaveChanges(); return(true); } else { throw new InvalidItemException("seance"); } } catch (Exception e) { throw e; } }
public bool RecurranceSeances(int id, string recurrance, int nbrRecurrance, string[] days, ref List <int> ids) { ManagerProgrammation managerProg; Dictionary <seance, List <seance> > confictingSeance = new Dictionary <seance, List <seance> >(); try { ids.Add(id); managerProg = new ManagerProgrammation(); seance seance = db.seances.Find(id); List <seance> seancesToAdd = new List <seance>(); List <programmation> progs = managerProg.GetAllprogramtionFromSeance(id); for (int i = 0; i < nbrRecurrance; i++) { switch (recurrance) { case "Yearly": seancesToAdd.Add(new seance() { date_debut = seance.date_debut.AddYears(i + 1), date_fin = seance.date_fin.AddYears(i + 1), salle_id = seance.salle_id, titre_seance = seance.titre_seance }); break; case "Monthly": seancesToAdd.Add(new seance() { date_debut = seance.date_debut.AddMonths(i + 1), date_fin = seance.date_fin.AddMonths(i + 1), salle_id = seance.salle_id, titre_seance = seance.titre_seance }); break; case "Daily": seancesToAdd.Add(new seance() { date_debut = seance.date_debut.AddDays(i + 1), date_fin = seance.date_fin.AddDays(i + 1), salle_id = seance.salle_id, titre_seance = seance.titre_seance }); break; case "Weekly": DateTime date = seance.date_debut; DayOfWeek day = DayOfWeek.Monday; int daysToNextMonday = ((int)day - (int)date.DayOfWeek + 7) % 7; List <DateTime> daysToRepeat = new List <DateTime>(); for (int j = 0; j < days.Length; j++) { seancesToAdd.Add(new seance() { date_debut = seance.date_debut.AddDays(daysToNextMonday + (i * 7) + DaystoAdd(days[j])), date_fin = seance.date_fin.AddDays(daysToNextMonday + (i * 7) + DaystoAdd(days[j])), salle_id = seance.salle_id, titre_seance = seance.titre_seance }); } break; default: break; } } if (seancesToAdd.Count > 0) { progs = managerProg.GetAllprogramtionFromSeance(id); } confictingSeance = PostManySeance(seancesToAdd, progs, ref ids); string conflictingString = RecuranceError(confictingSeance); if (conflictingString.Length > 0) { throw new Exception(conflictingString); } return(true); } catch (Exception e) { throw e; } }