public async Task <MovieResultModel> DeactivateMovie(Guid id) { var movie = await _moviesRepository.GetByIdAsync(id); if (movie == null) { return(new MovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_DOES_NOT_EXIST }); } var projections = await _projectionRepository.GetAll(); var futureProjections = projections.Where(p => p.MovieId == id && p.DateTime > DateTime.Now); if (futureProjections.Count() > 0) { return(new MovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_DEACTIVATION_ERROR, }); } var deactivatedMovie = await _moviesRepository.DeactivateCurrentMovie(movie.Id); _moviesRepository.Save(); MovieResultModel movieResultModel = new MovieResultModel { Movie = new MovieDomainModel { Id = movie.Id, Current = deactivatedMovie.Current, Rating = movie.Rating ?? 0, Title = movie.Title, Year = movie.Year, HasOscar = movie.HasOscar }, IsSuccessful = true, ErrorMessage = null }; return(movieResultModel); }