예제 #1
0
        /// <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();
            }
        }
예제 #2
0
        /// <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();
                }
            }
        }