Example #1
0
        public TheaterProgramBindingModel Edit(TheaterProgramBindingModel model)
        {
            var programDb = DbContext.TheaterProgram.Find(model.Id);

            if (programDb == null)
            {
                model.SetError("Program not found in database");
                return(model);
            }

            Mapper.Map(model, programDb);

            var moviesInTheaterToDelete = DbContext.MoviesInTheaters
                                          .Where(mt => mt.TheaterProgramId == model.Id);

            var moviesInTheaterToKeep = model.SelectedMoviesIds
                                        .Select(movieId => new MoviesInTheater
            {
                MovieId          = movieId,
                TheaterProgramId = model.Id.Value
            }).ToList();

            DbContext.RemoveRange(moviesInTheaterToDelete);
            DbContext.AddRange(moviesInTheaterToKeep);
            DbContext.TheaterProgram.Update(programDb);
            DbContext.SaveChanges();

            Mapper.Map(programDb, model);
            return(model);
        }
Example #2
0
        public TheaterProgramBindingModel GetById(int id)
        {
            var model     = new TheaterProgramBindingModel();
            var programDb = DbContext.TheaterProgram
                            .Include(p => p.Movies)
                            .FirstOrDefault(p => p.Id == id);

            if (programDb == null)
            {
                model.SetError("Theater program not found in database");
                return(model);
            }

            model = Mapper.Map <TheaterProgramBindingModel>(programDb);
            return(model);
        }