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")); }