예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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));
            }
        }
예제 #4
0
        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());
            }
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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)));
            }
        }
예제 #7
0
        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);
            }
        }
예제 #8
0
        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);
        }
예제 #9
0
 public MovieCreationData UpdateSec(MovieCreationData entity)
 {
     return(Channel.UpdateSec(entity));
 }