Esempio n. 1
0
        public string AddMovieMethod(MovieDetailsAddData movie)
        {
            SqlConnection sqlconnection = sqlsetup.SqlConnectionSetup();

            try
            {
                sqlconnection.Open();
                string ActorTable    = "Insert into IMDB.dbo.Actors(actor_id,Name,Sex,DOB,Bio) values(@actor_id,@Name,@Sex,@DOB,@Bio);";
                string ProducerTable = "Insert into IMDB.dbo.Producers(producer_id,Name,Sex,DOB,Bio) values(@producer_id,@Name,@Sex,@DOB,@Bio);";

                string MovieTable             = "Insert into IMDB.dbo.Movie(movie_id,Name,Release,Plot) values(@movie_id,@Name,@Release,@Plot);";
                string MovieProducerTable     = "Insert into IMDB.dbo.Mapping_Table_Producers_and_Movies(movie_id,producer_id) values(@movie_id,@producer_id);";
                string MappingTableActorMovie = "Insert into IMDB.dbo.Mapping_Table_Actors_and_movies(movie_id,actor_id) values(@movie_id,@actor_id);";
                if (movie.movie_id == null || movie.movie_id == default(Guid))
                {
                    movie.movie_id = Guid.NewGuid();
                }
                if (movie.Producer.producer_id == null || movie.Producer.producer_id == default(Guid))
                {
                    movie.Producer.producer_id = Guid.NewGuid();
                }
                Parallel.ForEach(movie.actors, x =>
                {
                    if (x.actor_id == null || x.actor_id == default(Guid))
                    {
                        x.actor_id = Guid.NewGuid();
                        sqlconnection.Execute(ActorTable, new { x.actor_id, x.Name, x.Sex, x.DOB, x.Bio });
                    }
                    sqlconnection.Execute(MappingTableActorMovie, new { movie.movie_id, x.actor_id });
                });
                List <Task> tableInsert = new List <Task>();
                tableInsert.Add(Task.Run(() =>
                {
                    sqlconnection.Execute(MovieTable, new { movie.movie_id, movie.Name, movie.Release, movie.Plot });
                }));
                tableInsert.Add(Task.Run(() =>
                {
                    sqlconnection.Execute(MovieProducerTable, new { movie.movie_id, movie.Producer.producer_id });
                }));
                tableInsert.Add(Task.Run(() =>
                {
                    sqlconnection.Execute(ProducerTable, new { movie.Producer.producer_id, movie.Producer.Name, movie.Producer.Sex, movie.Producer.DOB, movie.Producer.Bio });
                }));
                Task.WaitAll(tableInsert.ToArray());
            }
            catch (Exception e)
            {
                return("Failure");
            }
            finally
            {
                sqlconnection.Close();
            }
            return("Success");
        }
        public IHttpActionResult UpdateMovie(MovieDetailsAddData movie)
        {
            string status = moviedata.UpdateMovieMethod(movie);

            return(Ok(status));
        }