Ejemplo n.º 1
0
        public IHttpActionResult PostMovie(MovieViewModel movieViewModel)
        {
            //var errors = ModelState.Values.SelectMany(v => v.Errors);
            //can not apply modelstate.isvalid because it is looking for ID in model & giving error.

            if (string.IsNullOrEmpty(movieViewModel.Name))
            {
                return(BadRequest(ModelState));
            }

            //i should do transactions here to make sure all recrrds insserts correctly
            var movie = new Movie()
            {
                Name          = movieViewModel.Name,
                YearOfRelease = movieViewModel.Year,
                ProducerId    = movieViewModel.ProducerID
            };

            db.Movies.Add(movie);
            db.SaveChanges();

            //adding customer numbers here
            foreach (var produceractorViewModel in movieViewModel.producersactors)
            {
                var produceractor = new ProducerActor();

                produceractor.Id   = movie.Id;
                produceractor.Name = produceractorViewModel.Name;

                db.ProducersActors.Add(produceractor);
                db.SaveChanges();
            }

            return(Created(new Uri(Request.RequestUri + "/" + movie.Id), movieViewModel));
        }
Ejemplo n.º 2
0
        public IHttpActionResult PutMovie(int id, MovieViewModel movieViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != movieViewModel.ID)
            {
                return(BadRequest());
            }


            try
            {
                var movie = db.Movies.Find(movieViewModel.ID);
                movie.Name          = movieViewModel.Name;
                movie.YearOfRelease = movieViewModel.Year;
                movie.ProducerId    = movieViewModel.ProducerID;

                db.Entry(movie).State = EntityState.Modified;

                db.SaveChanges();

                foreach (var produceractorViewModel in movieViewModel.producersactors)
                {
                    var produceractor = db.ProducersActors.Where(c => c.Id == movie.ProducerId).Where(n => n.Id == produceractorViewModel.ID).FirstOrDefault();

                    if (produceractor != null)
                    {
                        produceractor.Name = produceractorViewModel.Name;

                        db.Entry(produceractor).State = EntityState.Modified;

                        db.SaveChanges();
                    }
                    else if (produceractor == null)
                    {
                        produceractor = new ProducerActor();

                        produceractor.Id   = movie.Id;
                        produceractor.Name = produceractorViewModel.Name;

                        db.ProducersActors.Add(produceractor);

                        db.SaveChanges();
                    }
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MoviesExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }