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); }
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); }