public String Put([FromBody] MovieDTO movieDTO) { if (movieDTO.MId <= 0) { return("Movie ID does not present"); } if (movieDTO.MName == null || movieDTO.MName == "") { return("Please enter movie name"); } if (movieDTO.MName == null || movieDTO.MName == "") { return("Please enter movie name"); } if (movieDTO.MYearOfRelease == null || movieDTO.MYearOfRelease == "") { return("Please enter year of release"); } if (movieDTO.MPlot == null || movieDTO.MPlot == "") { return("Please enter plot"); } if (movieDTO.MPoster == null || movieDTO.MPoster == "") { return("Please select poster of movie"); } if (movieDTO.ProducerId <= 0) { return("Please select producer of movie"); } if (movieDTO.LstActorIds.Count <= 0) { return("Please select alteast one actor for movie"); } Movies movies = _mapper.Map <Movies>(movieDTO); List <MovieAssignement> lstMovieAssignements = new List <MovieAssignement>(); MovieAssignement movieAssignement = new MovieAssignement(); movieAssignement.MaUserId = movieDTO.ProducerId; lstMovieAssignements.Add(movieAssignement); movieDTO.LstActorIds.ForEach(Actor => { movieAssignement = new MovieAssignement(); movieAssignement.MaUserId = Actor; lstMovieAssignements.Add(movieAssignement); }); movies.MovieAssignement = lstMovieAssignements; if (_movieManager.UpdateMovie(movies)) { return("Data updated"); } return("Data did not updated. Please try again."); }
Boolean IMovieManage.UpdateMovie(Movies movie) { var currentMovie = _context.Movies.Where(cond => cond.MId == movie.MId && !cond.MIsDeleted.Value).FirstOrDefault(); List <Int32> lstNewUserList = movie.MovieAssignement.Select(sel => sel.MaUserId.Value).Distinct().ToList(); if (currentMovie != null) { currentMovie.MName = movie.MName; currentMovie.MPlot = movie.MPlot; currentMovie.MPoster = movie.MPoster; currentMovie.MYearOfRelease = movie.MYearOfRelease; if (currentMovie.MovieAssignement != null) { List <Int32> lstToRemove = currentMovie.MovieAssignement.Where(cond => !lstNewUserList.Contains(cond.MaUserId.Value)).Select(sel => sel.MaId).ToList(); List <Int32> lstCommonUserId = currentMovie.MovieAssignement.Where(cond => lstNewUserList.Contains(cond.MaUserId.Value)).Select(sel => sel.MaUserId.Value).ToList(); foreach (var movieAssign in movie.MovieAssignement.Where(cond => !lstCommonUserId.Contains(cond.MaUserId.Value)).ToList()) { MovieAssignement movieAssignement = new MovieAssignement(); movieAssignement.MaUserId = movieAssign.MaUserId; currentMovie.MovieAssignement.Add(movieAssignement); } if (lstToRemove.Count > 0) { List <MovieAssignement> lstMAToRemove = _context.MovieAssignement.Where(cond => lstToRemove.Contains(cond.MaId)).ToList(); _context.MovieAssignement.RemoveRange(lstMAToRemove); } } } if (_context.SaveChanges() > 0) { return(true); } return(false); }