Exemplo n.º 1
0
        private void ProcessIncrementMoviePlayCountMessage(IncrementMoviePlayCountMessage message)
        {
            var newCount = 0;

            if (_moviePlayCount.ContainsKey(message.MovieTitle))
            {
                newCount = _moviePlayCount[message.MovieTitle] + message.Count;
                _moviePlayCount[message.MovieTitle] = newCount;
            }
            else
            {
                newCount = message.Count;
                _moviePlayCount.Add(message.MovieTitle, newCount);
            }

            // Simulated Exception - SimulatedCorruptStateException
            if (newCount > 3)
            {
                throw new SimulatedCorruptStateException();
            }

            // Simulated Exception - SimulatedCorruptStateException
            if (message.MovieTitle == "Terminator")
            {
                throw new SimulatedTerribleMovieException();
            }

            ColoredConsole.WriteStateChangeEvent($"      [{this.ActorName}] State: Movie '{message.MovieTitle}' has been watched {newCount} times.");
        }