public void AddContenu(SeanceContenu contenu) { db.SeanceContenus.Add(contenu); contenu.Contenu = db.Contenus.Find(contenu.ContenuTitre); db.SaveChanges(); }
public void DeleteContentFromSeance(int seanceID, string contenuTitre) { 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(); contents.Sort(); int index = 0; bool passed = false; foreach (var content in contents) { if (content.ContenuTitre == contenuTitre) { passed = true; if (content.Typage == ContenuTypeLibrary.CONT_TYPE_PROMO) { seance.SeancePromoes.Remove(seance.SeancePromoes.Where(sp => sp.PromoTitre == contenuTitre).FirstOrDefault()); } else { SeanceContenu c = seance.SeanceContenus.Where(sc => sc.ContenuTitre == contenuTitre).FirstOrDefault(); if (c.estPrincipal.GetValueOrDefault()) { SeanceContenu newPrincipal = seance.SeanceContenus.Where(sc => sc.Contenu.typage == ContenuTypeLibrary.CONT_TYPE_STANDARD).LastOrDefault(); if (newPrincipal != null) { newPrincipal.estPrincipal = true; } } seance.SeanceContenus.Remove(c); } } if (passed) { content.indexOrdre = content.indexOrdre - 1; } index++; } }
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); } }