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)); }