public void AddContentToSeance(int seanceID, string contenuTitre) { string type = repository.GetContentType(contenuTitre); if (type == "notfound") { throw new NotFoundException($"Le contenu avec le titre {contenuTitre} n'existe pas dans la base de données."); } Seance seance = repository.GetSeance(seanceID); List <ContenuViewModel> contents = mapper.Map <IEnumerable <SeanceContenu>, IEnumerable <ContenuViewModel> >(seance.SeanceContenus) .Concat(mapper.Map <IEnumerable <SeancePromo>, IEnumerable <ContenuViewModel> >(seance.SeancePromoes)) .ToList(); if (contents.Any(c => c.ContenuTitre == contenuTitre)) { throw new DuplicateContentException(contenuTitre); } if (type != ContenuTypeLibrary.CONT_TYPE_PROMO) { SeanceContenu seanceContenu = new SeanceContenu(); seanceContenu.ContenuTitre = contenuTitre; seanceContenu.indexOrdre = contents.Count == 0 ? 0 : contents.Max(c => c.indexOrdre) + 1; seanceContenu.SeanceID = seance.SeanceID; if (type == ContenuTypeLibrary.CONT_TYPE_STANDARD && seance.SeanceContenus.Where(sc => sc.SeanceID == seanceContenu.SeanceID && sc.Contenu.typage == ContenuTypeLibrary.CONT_TYPE_STANDARD).Count() == 0) { seanceContenu.estPrincipal = true; } repository.AddContenu(seanceContenu); } else { SeancePromo seancePromo = new SeancePromo(); seancePromo.PromoTitre = contenuTitre; seancePromo.indexOrdre = contents.Count == 0 ? 0 : contents.Max(c => c.indexOrdre) + 1; seancePromo.SeanceID = seance.SeanceID; repository.AddPromo(seancePromo); } }
public void AddPromo(SeancePromo promo) { db.SeancePromoes.Add(promo); db.SaveChanges(); }