public MovieCreationData GetSec(int movieId) { MovieCreationData movieData = new MovieCreationData(); Movie movieEntity = new Movie(); //var actorMappings = new MovieActorMapping(); //var genreMappings = new MovieGenreMapping(); using (var entityContext = new MovieDbContext()) { movieEntity = entityContext.MovieSet.Find(movieId); movieData.GenreIds = entityContext.MovieGenreMappingSet .Where(t => t.MovieId == movieId) .Select(t => t.GenreId).ToArray(); movieData.ActorIds = entityContext.MovieActorMappingSet .Where(t => t.MovieId == movieId) .Select(t => t.ActorId).ToArray(); } if (movieEntity != null) { SimpleMapper.PropertyMap(movieEntity, movieData); } return(movieData); }
public MovieCreationData Add(MovieCreationData movieCreationData) { using (var entityContext = new MovieDbContext()) { var movie = new Movie(); SimpleMapper.PropertyMap(movieCreationData, movie); movie.CreatedAt = DateTime.Now; entityContext.MovieSet.Add(movie); entityContext.SaveChanges(); if (movieCreationData.GenreIds != null) { foreach (var genreId in movieCreationData.GenreIds) { entityContext.MovieGenreMappingSet.Add(new MovieGenreMapping() { GenreId = genreId, MovieId = movie.Id }); } } if (movieCreationData.SubGenreIds != null) { foreach (var subGenreId in movieCreationData.SubGenreIds) { entityContext.MovieGenreMappingSet.Add(new MovieGenreMapping() { GenreId = subGenreId, MovieId = movie.Id }); } } if (movieCreationData.ActorIds != null) { foreach (var actorId in movieCreationData.ActorIds) { entityContext.MovieActorMappingSet.Add(new MovieActorMapping() { ActorId = actorId, MovieId = movie.Id }); } } //entityContext.SaveChanges(); } return(movieCreationData); }
public ActionResult Edit(MovieCreationData updatedMovie) { updatedMovie.Validate(); if (!updatedMovie.ValidationErrors.Any()) { var updetedMovie = _movieService.UpdateSec(updatedMovie); return(View(updatedMovie)); } else { ViewBag.ValidationErrors = updatedMovie.ValidationErrors.ToList(); TempData["Status"] = CrudNotification.ValidationError; return(View(updatedMovie)); } }
public ActionResult Create(MovieCreationData incomingMovie, HttpPostedFileBase image) { incomingMovie.Validate(); if (!incomingMovie.ValidationErrors.Any()) { //_movieService.UpdateSec(incomingMovie); TempData["Status"] = CrudNotification.Success; return(View("Create")); } else { ViewBag.ValidationErrors = incomingMovie.ValidationErrors.ToList(); TempData["Status"] = CrudNotification.ValidationError; return(View()); } }
public MovieCreationData GetSec(int movieId) { try { MovieCreationData movie = _dataRepositoryFactory.GetDataRepository <IMovieRepository>().GetSec(movieId); if (movie.Name == null) { var movieExcpt = new UniformException() { Message = "", Reason = string.Format("There's no movie for given id: {0}", movieId) }; throw new FaultException <UniformException>(movieExcpt); } if (movie.Name == null) { throw new FaultException("No content available for the given Id."); } return(movie); } catch (FaultException <UniformException> ex) { throw; } catch (FaultException ex) { throw; } catch (CommunicationException ex) { //throw new FaultException("A communication exception has occured!" + ex.Message); throw new FaultException <CommunicationException>(new CommunicationException("ap ex"), "No reason"); } catch (Exception ex) { throw new FaultException("Something went terribly wrong!" + ex.Message); } }
public ActionResult Edit(int?id) { if (id == 0) { return(View("Select")); } try { MovieCreationData movie = _movieService.GetSec(id.Value); List <SelectListItem> languages = null; RunAndReleaseProxy(_proxyFactory.CreateProxy <ILanguageService>(), proxy => { languages = proxy.GetAll() .Select(t => new SelectListItem() { Text = t.Name, Value = t.Id.ToString() }) .ToList(); }); ViewBag.Languages = languages; return(View(movie)); } catch (FaultException <UniformException> e) { return(Content(string.Format("{0} {1}", e.Detail.Message, e.Detail.Reason))); } catch (FaultException <CommunicationException> e) { return(Content(string.Format("(CE) {0} / {1}", e.Message, e.Reason))); } catch (FaultException e) { return(Content(string.Format("(DEF F.E.) {0} / {1}", e.Message, e.Reason))); } }
public MovieCreationData UpdateSec(MovieCreationData movieCreationData) { try { IMovieRepository movieRepository = _dataRepositoryFactory.GetDataRepository <IMovieRepository>(); MovieCreationData updatedMovie = null; if (movieCreationData.Id == 0) { updatedMovie = movieRepository.Add(movieCreationData); } else { updatedMovie = movieRepository.UpdateSec(movieCreationData); } return(updatedMovie); } catch (Exception ex) { throw new FaultException(ex.Message); } }
public MovieCreationData UpdateSec(MovieCreationData movieCreationData) { if (movieCreationData.GenreIds == null) { movieCreationData.GenreIds = new int[] {} } ; if (movieCreationData.SubGenreIds != null && movieCreationData.SubGenreIds.Count() > 0) { movieCreationData.GenreIds = movieCreationData.GenreIds.Union(movieCreationData.SubGenreIds).ToArray(); } using (var entityContext = new MovieDbContext()) { var existingMovie = (from m in entityContext.MovieSet where m.Id == movieCreationData.Id select m).FirstOrDefault(); SimpleMapper.PropertyMap(movieCreationData, existingMovie); entityContext.SaveChanges(); // ADIM 1 // var currentGenreMappings = entityContext.MovieGenreMappingSet.Where(t => t.MovieId == movieCreationData.Id).ToList(); // (True ise) Güncel Movie'de, veritabanındaki haline kıyasla, daha az Genre (Mapping) bulunmakta.. if (currentGenreMappings.Count > movieCreationData.GenreIds.Count()) { for (int i = 0; i < movieCreationData.GenreIds.Count(); i++) { currentGenreMappings[i].GenreId = movieCreationData.GenreIds[i]; } //2 for (int i = movieCreationData.GenreIds.Count(); i < currentGenreMappings.Count; i++) { entityContext.MovieGenreMappingSet.Remove(currentGenreMappings[i]); } entityContext.SaveChanges(); } else { int index = 0; foreach (var currentGenreMap in currentGenreMappings) { currentGenreMap.GenreId = movieCreationData.GenreIds[index]; index++; } if (movieCreationData.GenreIds.Count() != currentGenreMappings.Count) { for (int i = index; i < movieCreationData.GenreIds.Count(); i++) { var newGenreMapping = new MovieGenreMapping() { MovieId = movieCreationData.Id, GenreId = movieCreationData.GenreIds[i] }; entityContext.MovieGenreMappingSet.Add(newGenreMapping); } } entityContext.SaveChanges(); } // ADIM 2 // var currentActorMappings = entityContext.MovieActorMappingSet.Where(t => t.MovieId == movieCreationData.Id).ToList(); // (True ise) Güncel Movie'de, veritabanındaki haline kıyasla, daha az Actor (Mapping) bulunmakta.. if (movieCreationData.ActorIds.Count() < currentActorMappings.Count) { for (int i = 0; i < movieCreationData.ActorIds.Count(); i++) { currentActorMappings[i].ActorId = movieCreationData.ActorIds[i]; } //2 for (int i = movieCreationData.ActorIds.Count(); i < currentActorMappings.Count; i++) { entityContext.MovieActorMappingSet.Remove(currentActorMappings[i]); } entityContext.SaveChanges(); } else { int index = 0; foreach (var currentActorMap in currentActorMappings) { currentActorMap.ActorId = movieCreationData.ActorIds[index]; index++; } if (movieCreationData.ActorIds.Count() != currentActorMappings.Count) { for (int i = index; i < movieCreationData.ActorIds.Count(); i++) { var newActorMapping = new MovieActorMapping() { MovieId = movieCreationData.Id, ActorId = movieCreationData.ActorIds[i] }; entityContext.MovieActorMappingSet.Add(newActorMapping); } } entityContext.SaveChanges(); } } return(movieCreationData); }
public MovieCreationData UpdateSec(MovieCreationData entity) { return(Channel.UpdateSec(entity)); }