/// <summary> /// Supprime tout les repas compris entre deux dates /// </summary> /// <param name="dateDebut">la date de début</param> /// <param name="dateFin">la date de fin</param> private void SupprimeRepas(DateTime dateDebut, DateTime dateFin) { RemiseEtatNormalRepas(dateDebut, dateFin); //on réucpère les dates de cette semaine pour éviter de pointer sur des dates devant être bloqué var lundiEnCours = DateUtils.GetAujourdhui().AddDays(DayOfWeek.Monday - DateUtils.GetAujourdhui().DayOfWeek); var vendrediEnCours = lundiEnCours.AddDays(4); var dateDeb = dateDebut; var dateF = dateFin.AddDays(1); if (dateDeb <= dateFin) { //ajoute les repas du midi aux exceptions (en supposant que toute les exceptions ont été supprimées avant) do { if ((dateDeb.DayOfWeek == DayOfWeek.Monday || dateDeb.DayOfWeek == DayOfWeek.Tuesday || dateDeb.DayOfWeek == DayOfWeek.Wednesday || dateDeb.DayOfWeek == DayOfWeek.Thursday) && dateDeb > vendrediEnCours) { var repas = new DateExceptionRepas { UtilisateurId = GetIdUtilisateurConnecte(), Date = dateDeb, IsPresent = false, PeriodeRepas = PeriodeRepasEnum.MIDI }; Db.DateExceptionRepas.Add(repas); } dateDeb = dateDeb.AddDays(1); } while (dateDeb != dateF); Db.SaveChanges(); } }
/// <summary> /// Modifie la présence d'un repas /// </summary> /// <param name="input">le repas et sa présence</param> /// <param name="date">la date de la modification</param> public void AjaxModifRepas(string input, string date) { var dataSplit = input.Split('='); var dateConvert = DateUtils.StringEnDate(date); if (dataSplit.Length == 2 && dateConvert.DayOfWeek == DayOfWeek.Monday) { DateTime dateModif; PeriodeRepasEnum momentRepas; switch (dataSplit[0]) { case "LundiMidi": dateModif = dateConvert; momentRepas = PeriodeRepasEnum.MIDI; break; case "LundiSoir": dateModif = dateConvert; momentRepas = PeriodeRepasEnum.SOIR; break; case "MardiMidi": dateModif = dateConvert.AddDays(1); momentRepas = PeriodeRepasEnum.MIDI; break; case "MardiSoir": dateModif = dateConvert.AddDays(1); momentRepas = PeriodeRepasEnum.SOIR; break; case "MercrediMidi": dateModif = dateConvert.AddDays(2); momentRepas = PeriodeRepasEnum.MIDI; break; case "MercrediSoir": dateModif = dateConvert.AddDays(2); momentRepas = PeriodeRepasEnum.SOIR; break; case "JeudiMidi": dateModif = dateConvert.AddDays(3); momentRepas = PeriodeRepasEnum.MIDI; break; case "JeudiSoir": dateModif = dateConvert.AddDays(3); momentRepas = PeriodeRepasEnum.SOIR; break; case "VendrediMidi": dateModif = dateConvert.AddDays(4); momentRepas = PeriodeRepasEnum.MIDI; break; default: dateModif = dateConvert; momentRepas = PeriodeRepasEnum.MIDI; break; } //enregistreent en base ou supression de la base var momentToSearch = new DateExceptionRepas { Date = dateModif, IsPresent = dataSplit[1] == "1", PeriodeRepas = momentRepas, UtilisateurId = GetIdUtilisateurConnecte() }; if ( Db.DateExceptionRepas.Count( x => x.Date == momentToSearch.Date && x.PeriodeRepas == momentToSearch.PeriodeRepas && x.UtilisateurId == momentToSearch.UtilisateurId) > 0) { var toRemove = Db.DateExceptionRepas.First( x => x.Date == momentToSearch.Date && x.PeriodeRepas == momentToSearch.PeriodeRepas && x.UtilisateurId == momentToSearch.UtilisateurId); Db.DateExceptionRepas.Remove(toRemove); Db.SaveChanges(); } else { Db.DateExceptionRepas.Add(momentToSearch); Db.SaveChanges(); } } }