// Mettre à jour les contenus d'une séance - le contenu principal et l'ordre d'affichage. public void UpdateSeanceContents(SeanceViewModel seanceVM) { Seance seance = repository.GetSeance(seanceVM.SeanceID); // Mettre à jour les contenus seulement s'il y'en a. if (seance.SeanceContenus.Count > 0 || seance.SeancePromoes.Count > 0) { List <string> order = new List <string>(seanceVM.Order.Split(',')); // Traiter les contenu standard et court. foreach (var content in seance.SeanceContenus) { content.indexOrdre = order.IndexOf(content.ContenuTitre); if (content.ContenuTitre == seanceVM.PrincipalFilm) { content.estPrincipal = true; } else { content.estPrincipal = false; } } // Traiter les promos. foreach (var content in seance.SeancePromoes) { content.indexOrdre = order.IndexOf(content.PromoTitre); } } }
public void UpdateSeanceTimes(SeanceViewModel seanceVM) { if (seanceVM.Validate(this)) { Seance seance = repository.GetSeance(seanceVM.SeanceID); seance.HeureDebut = seanceVM.HeureDebut; seance.HeureFin = seanceVM.HeureFin; } else { throw new ScheduleException(); } }
// Validation et création d'une séance. public SeanceViewModel CreateSeance(SeanceViewModel seanceVM) { if (seanceVM.Validate(this)) { Seance seance = mapper.Map <SeanceViewModel, Seance>(seanceVM); try { repository.CreateSeance(seance); } catch (Exception ex) { throw new DBException(ex); } return(mapper.Map <Seance, SeanceViewModel>(seance)); } else { throw new ScheduleException(); } }
// Chercher une séance specifique par ID. public SeanceViewModel GetSeance(int id) { Seance seance = repository.GetSeance(id); if (seance == null) { throw new NotFoundException($"Le séance avec ID {id} n'existe pas dans la base de données."); } SeanceViewModel svm = mapper.Map <Seance, SeanceViewModel>(seance); // Chercher les contenus de tous les types et les mettre dans une liste. //svm.Contenus = // mapper.Map<IEnumerable<SeanceContenu>, IEnumerable<ContenuViewModel>>(seance.SeanceContenus) // .Concat(mapper.Map<IEnumerable<SeancePromo>, IEnumerable<ContenuViewModel>>(seance.SeancePromoes)) // .ToList(); // Trier les contenus en ordre d'affichage. svm.Contenus.Sort(); return(svm); }