/// <summary> /// Génère les stats de présence d'un repas du personnel sur une semaine /// </summary> /// <param name="viewModel">le viewModel à modifié</param> /// <returns>le viewModel modifié</returns> private RepasViewModel CompteurRepas(RepasViewModel viewModel) { viewModel.NbRepasLundiMidi = viewModel.Listing.Count(x => x.IsLundiMidi); viewModel.NbRepasLundiSoir = viewModel.Listing.Count(x => x.IsLundiSoir); viewModel.NbRepasMardiMidi = viewModel.Listing.Count(x => x.IsMardiMidi); viewModel.NbRepasMardiSoir = viewModel.Listing.Count(x => x.IsMardiSoir); viewModel.NbRepasMercrediMidi = viewModel.Listing.Count(x => x.IsMercrediMidi); viewModel.NbRepasMercrediSoir = viewModel.Listing.Count(x => x.IsMercrediSoir); viewModel.NbRepasJeudiMidi = viewModel.Listing.Count(x => x.IsJeudiMidi); viewModel.NbRepasJeudiSoir = viewModel.Listing.Count(x => x.IsJeudiSoir); viewModel.NbRepasVendrediMidi = viewModel.Listing.Count(x => x.IsVendrediMidi); return(viewModel); }
/// <summary> /// Génère un viewModel par défaut pour les repas /// </summary> /// <param name="dateDebut">la date de début de semaine à afficher</param> /// <returns>le viewModel pret</returns> private RepasViewModel GenerateViewModelDefaut(DateTime dateDebut) { var lundi = new DateTime(dateDebut.AddDays(DayOfWeek.Monday - dateDebut.DayOfWeek).Year, dateDebut.AddDays(DayOfWeek.Monday - dateDebut.DayOfWeek).Month, dateDebut.AddDays(DayOfWeek.Monday - dateDebut.DayOfWeek).Day); var vendredi = lundi.AddDays(4); var listePcp = Db.Permissions.Where(x => x.Date >= lundi && x.Date <= vendredi && x.TypePerm == TypePermEnum.PCP).Select(x => x.Date).ToList(); var listeRtt = Db.Permissions.Where(x => x.Date >= lundi && x.Date <= vendredi && x.TypePerm == TypePermEnum.RTT).Select(x => x.Date).ToList(); var IsLundiMidiA = DateUtils.IsFerie(lundi); var IsLundiMidiB = listeRtt.Contains(lundi); var IsLundiMidiC = listePcp.Contains(lundi); var IsMardiMidiA = DateUtils.IsFerie(lundi.AddDays(1)); var IsMardiMidiB = listeRtt.Contains(lundi.AddDays(1)); var IsMardiMidiC = listePcp.Contains(lundi.AddDays(1)); var viewModel = new RepasViewModel { //les dates IsDisable = lundi <= DateUtils.GetAujourdhui(), DateDeb = lundi, MoisAnneeDateDeb = " " + DateUtils.GetNomMois(lundi) + " " + lundi.Year, DateFin = vendredi, MoisAnneeDateFin = " " + DateUtils.GetNomMois(vendredi) + " " + vendredi.Year, //la présence par défaut (en prenant en compte les jours fériés) IsLundiMidi = (DateUtils.IsFerie(lundi) || (listeRtt.Contains(lundi) && listePcp.Contains(lundi)))?false:true, IsLundiSoir = false, IsMardiMidi = (DateUtils.IsFerie(lundi.AddDays(1)) || (listeRtt.Contains(lundi.AddDays(1)) && listePcp.Contains(lundi.AddDays(1)))) ? false : true, IsMardiSoir = false, IsMercrediMidi = (DateUtils.IsFerie(lundi.AddDays(2)) || (listeRtt.Contains(lundi.AddDays(2)) && listePcp.Contains(lundi.AddDays(2)))) ? false : true, IsMercrediSoir = false, IsJeudiMidi = (DateUtils.IsFerie(lundi.AddDays(3)) || (listeRtt.Contains(lundi.AddDays(3)) && listePcp.Contains(lundi.AddDays(3)))) ? false : true, IsJeudiSoir = false, IsVendrediMidi = false }; return(viewModel); }
/// <summary> /// Récupère les particularité d'une semaine de repas pour un utilisateur /// </summary> /// <param name="viewModel">le viewModel à modifier</param> /// <returns>le viewModel modifié</returns> private RepasViewModel RecupDonneesSemainePerso(RepasViewModel viewModel) { //charge les exceptions var idUser = GetIdUtilisateurConnecte(); var listeException = Db.DateExceptionRepas.Where( x => x.UtilisateurId == idUser && x.Date <= viewModel.DateFin && x.Date >= viewModel.DateDeb) .ToList(); //les applique au planning foreach (var exception in listeException) { switch (exception.Date.DayOfWeek) { case DayOfWeek.Monday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsLundiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsLundiSoir = exception.IsPresent; } break; case DayOfWeek.Tuesday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsMardiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsMardiSoir = exception.IsPresent; } break; case DayOfWeek.Wednesday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsMercrediMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsMercrediSoir = exception.IsPresent; } break; case DayOfWeek.Thursday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsJeudiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsJeudiSoir = exception.IsPresent; } break; case DayOfWeek.Friday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsVendrediMidi = exception.IsPresent; } break; } } return(viewModel); }
/// <summary> /// Génère les exception d'un viewModel /// </summary> /// <param name="viewModel">le viewModel à modifié</param> /// <param name="listeException">les exccetions à inclure</param> /// <returns>le viewMoel modifié</returns> private RepasViewModel GenerateRepasSemaine(RepasViewModel viewModel, ICollection <DateExceptionRepas> listeException) { foreach (var exception in listeException) { switch (exception.Date.DayOfWeek) { case DayOfWeek.Monday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsLundiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsLundiSoir = exception.IsPresent; } break; case DayOfWeek.Tuesday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsMardiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsMardiSoir = exception.IsPresent; } break; case DayOfWeek.Wednesday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsMercrediMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsMercrediSoir = exception.IsPresent; } break; case DayOfWeek.Thursday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsJeudiMidi = exception.IsPresent; } if (exception.PeriodeRepas == PeriodeRepasEnum.SOIR) { viewModel.IsJeudiSoir = exception.IsPresent; } break; case DayOfWeek.Friday: if (exception.PeriodeRepas == PeriodeRepasEnum.MIDI) { viewModel.IsVendrediMidi = exception.IsPresent; } break; } } return(viewModel); }