public bool PostSeance(seance seance)
 {
     try
     {
         List <seance> ConflictingSeances = ValidatorSeance.IsSeanceConflict(seance, this.GetAllSeanceFromSalle(seance.salle_id, null));
         if (ValidatorSeance.IsValide(seance) && ConflictingSeances.Count == 0 && !ValidatorSeance.IsSeanceExiste(seance, this.GetAllSeanceFromSalle(seance.salle_id, null)))
         {
             db.seances.Add(seance);
             db.SaveChanges();
             return(true);
         }
         else if (ConflictingSeances.Count != 0)
         {
             throw new ConflictiongSeanceException(ConflictingSeances);
         }
         else if (ValidatorSeance.IsSeanceExiste(seance, this.GetAllSeanceFromSalle(seance.salle_id, null)))
         {
             throw new ExistingItemException("seance");
         }
         else
         {
             throw new InvalidItemException("seance");
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
        private Dictionary <seance, List <seance> > PostManySeance(List <seance> seances, List <programmation> progs, ref List <int> ids)
        {
            //cinema_dbEntities localdb = new cinema_dbEntities();
            Dictionary <seance, List <seance> > conflict = new Dictionary <seance, List <seance> >();

            using (cinema_dbEntities localdb = new cinema_dbEntities())
            {
                foreach (var item in seances)
                {
                    try
                    {
                        List <seance> ConflictingSeances = ValidatorSeance.IsSeanceConflict(item, this.GetAllSeanceFromSalle(item.salle_id, null));
                        if (ValidatorSeance.IsValide(item) && ConflictingSeances.Count == 0 && !ValidatorSeance.IsSeanceExiste(item, this.GetAllSeanceFromSalle(item.salle_id, null)))
                        {
                            localdb.seances.Add(item);
                        }
                        else if (ConflictingSeances.Count != 0)
                        {
                            throw new ConflictiongSeanceException(ConflictingSeances);
                        }
                        else if (ValidatorSeance.IsSeanceExiste(item, this.GetAllSeanceFromSalle(item.salle_id, null)))
                        {
                            throw new ExistingItemException("seance");
                        }
                        else
                        {
                            throw new InvalidItemException("seance");
                        }
                    }
                    catch (ConflictiongSeanceException e)
                    {
                        conflict[item] = (List <seance>)e.Data[0];
                    }
                }
                localdb.SaveChanges();
            }

            foreach (var item in seances)
            {
                ids.Add(db.seances.Where(s => s.date_debut == item.date_debut && s.date_fin == item.date_fin && s.salle_id == item.salle_id).ToList()[0].id);
            }
            return(conflict);
        }
 public bool PutSeance(seance seance)
 {
     try
     {
         int           cinemaId           = new ManagerSalle().GetSalle(seance.salle_id, null, null).cinema_id;
         List <seance> ConflictingSeances = ValidatorSeance.IsSeanceConflict(seance, this.GetAllSeanceFromSalle(seance.salle_id, null));
         if (ValidatorSeance.IsSeanceExiste(seance, this.GetAllSeanceFromCinema(cinemaId)) && ValidatorSeance.IsValide(seance) && ConflictingSeances.Count == 0)
         {
             db.Set <seance>().AddOrUpdate(seance);
             db.SaveChanges();
             return(true);
         }
         else if (ConflictingSeances.Count != 0)
         {
             throw new ConflictiongSeanceException(ConflictingSeances);
         }
         else if (!ValidatorSeance.IsSeanceExiste(seance, this.GetAllSeanceFromCinema(cinemaId)))
         {
             throw new ItemNotExistException("seance");
         }
         else
         {
             throw new InvalidItemException("seance");
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }