예제 #1
0
        public Movie Add(Movie movie)
        {
            //TODO: Validation
            if (movie == null)
            {
                return(null);
            }

            //if (!String.IsNullOrEmpty(movie.Validate()))
            //var context = new ValidationContext(movie);
            //var results = movie.Validate(context);
            var results = ObjectValidator.TryValidateObject(movie);

            if (results.Count() > 0)
            {
                return(null);
            }

            //Name must be unique
            var existing = GetByNameCore(movie.Title);

            if (existing != null)
            {
                return(null);
            }

            return(AddCore(movie));
        }
예제 #2
0
        public Movie Add(Movie movie)
        {
            //Validation
            //if (movie == null)             return null;
            //throw new Exception("Movie is null");
            if (movie == null)
            {
                throw new ArgumentNullException(nameof(movie));
            }

            //if (!String.IsNullOrEmpty(movie.Validate()))
            //var context = new ValidationContext(movie);
            //var results = movie.Validate(context);
            var results = ObjectValidator.TryValidateObject(movie);

            if (results.Count() > 0)
            {
                //return null;
                throw new ValidationException(results.FirstOrDefault().ErrorMessage);
            }

            //Name must be unique
            var existing = GetByNameCore(movie.Title);

            if (existing != null)
            {
                //return null;
                throw new ArgumentException("Movie must be unique");
            }

            return(AddCore(movie));
        }
예제 #3
0
        public void Update(int id, Movie newMovie)
        {
            //TODO: Validate
            if (id <= 0)
            {
                return;
            }
            if (newMovie == null)
            {
                return;
            }

            //if (!String.IsNullOrEmpty(movie.Validate()))
            //var context = new ValidationContext(newMovie);
            //var results = newMovie.Validate(context);
            var results = ObjectValidator.TryValidateObject(newMovie);

            if (results.Count() > 0)
            {
                return;
            }

            //Must be unique
            var existing = GetByNameCore(newMovie.Title);

            if (existing != null && existing.Id != id)
            {
                return;
            }

            UpdateCore(id, newMovie);
        }
예제 #4
0
        public void Update(int id, Movie newMovie)
        {
            //validate parameters
            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(id), "Id must be > 0.");
            }
            if (newMovie == null)
            {
                throw new ArgumentNullException(nameof(newMovie));
            }

            //if (!String.IsNullOrEmpty(newMovie.Validate()))
            var results = ObjectValidator.TryValidateObject(newMovie);

            if (results.Count() > 0)
            {
                throw new ValidationException(results.FirstOrDefault().ErrorMessage);
            }

            var existing = GetByNameCore(newMovie.Title);

            if (existing != null && existing.Id != id)
            {
                throw new ArgumentException("Movie must be unique.");
            }

            try
            {
                UpdateCore(id, newMovie);
            } catch (IOException ex)
            {
                throw new Exception("An error occurred updating the movie.", ex);
            };
        }