private MovieInfo UpdateMovieInfo(MovieRequestDTO movie) { var movieInfo = dbContext.MovieInfoes.Where(m => m.MovieId == movie.MovieId).FirstOrDefault(); if (movieInfo != null) { using (var transaction = dbContext.Database.BeginTransaction()) { //update movie details. try { movieInfo.Name = movie.MovieName; movieInfo.Plot = movie.Plot; movieInfo.Poster = movie.PosterImage; movieInfo.ProducedBy = movie.ProducedBy; movieInfo.Status = true; movieInfo.YearOfRelease = movie.YearOfRelease; movieInfo.ModifiedDate = DateTime.Now; dbContext.SaveChanges(); var mappedActors = dbContext.ActorInMovies.Where(m => m.MovieId == movie.MovieId).ToList(); if (mappedActors.IsNotNullOrEmpty()) { dbContext.ActorInMovies.RemoveRange(mappedActors); dbContext.SaveChanges(); } if (movie.Actors.Length > 0) { var actorinMovie = movie.Actors.Distinct().Select(a => new ActorInMovie() { ActorId = a, MovieId = movieInfo.MovieId }).ToList(); dbContext.ActorInMovies.AddRange(actorinMovie); dbContext.SaveChanges(); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } return(movieInfo); } throw new Exception("No such movie found by your search to update the details."); }
public ProducerInfo SaveProducerInfo(ProducerInfoRequestDTO request) { using (var transaction = dbContext.Database.BeginTransaction()) { try { DateTime dateOfBirth = new DateTime(request.DOB.Year, request.DOB.Month, request.DOB.Day, 0, 0, 0); if (dbContext.ProducerInfoes.Where(a => (a.Name == request.ProducerName && a.DOB == dateOfBirth && a.Sex == request.Sex)).FirstOrDefault() != null) { if (!request.NameConfirm) { return(null); } } ProducerInfo producerInfo = new ProducerInfo() { Bio = request.Bio, CreatedDate = DateTime.Now, DOB = request.DOB, Name = request.ProducerName, Sex = request.Sex, Status = true }; dbContext.ProducerInfoes.Add(producerInfo); dbContext.SaveChanges(); transaction.Commit(); return(producerInfo); } catch (Exception) { transaction.Rollback(); throw; } } }