public async Task <IActionResult> EditHoraires(Guid etablissementId)
        {
            try
            {
                EditHoraireViewModel model    = new EditHoraireViewModel();
                List <Horaire>       lHoraire = await horaireService.GetAllHorairesAsync();

                lHoraire = lHoraire.Where(x => x.EtablissementId == etablissementId).ToList();

                if (lHoraire != null)
                {
                    List <string> lJours = new JoursSemaine().lJours;
                    lHoraire = lHoraire.OrderBy(h => lJours.IndexOf(h.Jour)).ThenBy(h => h.HeureOuverture).ToList();

                    model.lHoraire = lHoraire;
                }
                else
                {
                    model.lHoraire = new List <Horaire>();
                }
                model.EtablissementId = etablissementId;

                return(View(model));
            }
            catch (Exception ex)
            {
                ErrorViewModel vme = new ErrorViewModel()
                {
                    RequestId = ex.Message
                };
                return(View("Error", vme));
            }
        }
        public async Task <IActionResult> EditHoraires(EditHoraireViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var idToken = await HttpContext.GetTokenAsync("access_token");

                    List <Horaire> lHoraireTotal = await horaireService.GetAllHorairesAsync();

                    List <Horaire> lHoraireEtab = lHoraireTotal.Where(x => x.EtablissementId == model.EtablissementId).ToList();

                    foreach (Horaire horaire in model.lHoraire)
                    {
                        horaire.EtablissementId = model.EtablissementId;
                    }


                    // fait l'update des horaires qui sont toujours dans le model
                    foreach (Horaire horaire in model.lHoraire)
                    {
                        if (lHoraireEtab.Contains(horaire))
                        {
                            var result = await horaireService.UpdateHoraireAsync(horaire, idToken);
                        }
                    }

                    //supprime les horaires qui ne sont plus dans le model
                    foreach (Horaire horaire in lHoraireEtab)
                    {
                        if (!model.lHoraire.Contains(horaire))
                        {
                            await horaireService.DeleteHoraireAsync(horaire.Id, idToken);
                        }
                    }

                    //ajoute les horaires qui ne sont pas dans la DB
                    foreach (Horaire horaire in model.lHoraire)
                    {
                        if (!lHoraireEtab.Contains(horaire))
                        {
                            var result = await horaireService.CreateHoraireAsync(horaire, idToken);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ErrorViewModel vme = new ErrorViewModel()
                    {
                        RequestId = ex.Message
                    };
                    return(View("Error", vme));
                }
            }
            return(RedirectToAction("ListeEtablissementOwned"));
        }