Esempio n. 1
0
        //  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);
                }
            }
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        //  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();
            }
        }
Esempio n. 4
0
        //  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);
        }