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