Пример #1
0
        private void StopPlayingCurrentMovie()
        {
            ColorConsole.WriteColorLine($"User {userId} has stopped watching " + _currentlyWatching, ConsoleColor.Yellow);
            _currentlyWatching = null;

            Become(Stopped);
        }
        private void HandleIncrementMessage(IncrementPlayCountMessage mes)
        {
            if (_moviePlayCounts.ContainsKey(mes.MovieTitle))
            {
                _moviePlayCounts[mes.MovieTitle]++;
            }
            else
            {
                _moviePlayCounts.Add(mes.MovieTitle, 1);
            }

            // simulated bugs
            if (_moviePlayCounts[mes.MovieTitle] > 3)
            {
                throw new SimulatedCorruptStateException();
            }

            if (mes.MovieTitle == "Terrible movie")
            {
                throw new SimulatedTerribleMovieException();
            }

            ColorConsole.WriteColorLine(
                $"MoviePlayCounterActor '{mes.MovieTitle}' has been watched {_moviePlayCounts[mes.MovieTitle]}",
                ConsoleColor.Magenta);
        }
Пример #3
0
        private void Stopped()
        {
            Receive <PlayMovieMessage>(mes => StartPlayingMovie(mes.MovieTitle));
            Receive <StopMovieMessage>(
                mes => ColorConsole.WriteColorLine("Error: cannot stop if nothing is playing", ConsoleColor.Yellow));

            ColorConsole.WriteColorLine($"UserActor {userId} has now become Stopped", ConsoleColor.Yellow);
        }
Пример #4
0
        private void StartPlayingMovie(string movieTitle)
        {
            _currentlyWatching = movieTitle;
            ColorConsole.WriteColorLine($"User {userId} is currently watching " + _currentlyWatching, ConsoleColor.Yellow);

            Context.ActorSelection("/user/Playback/PlaybackStatistics/MoviePlayCounter")
            .Tell(new IncrementPlayCountMessage(movieTitle));
            Become(Playing);
        }
Пример #5
0
 private void CreateChildUserIfNotExists(int userId)
 {
     if (!_users.ContainsKey(userId))
     {
         IActorRef newChildActorRef = Context.ActorOf(Props.Create(() => new UserActor(userId)), "User" + userId);
         _users.Add(userId, newChildActorRef);
         ColorConsole.WriteColorLine(
             $"UserCoordinationActor created new child UserActor for {userId} (Total Users: {_users.Count})",
             ConsoleColor.Cyan);
     }
 }
Пример #6
0
        private void Playing()
        {
            Receive <PlayMovieMessage>(
                mes =>
                ColorConsole.WriteColorLine(
                    "Error: cannot start playing another movie before stoping existing one.",
                    ConsoleColor.Red));
            Receive <StopMovieMessage>(mes => StopPlayingCurrentMovie());

            ColorConsole.WriteColorLine($"UserActor {userId} has now become Playing", ConsoleColor.Yellow);
        }
Пример #7
0
 protected override void PreRestart(Exception reason, object message)
 {
     ColorConsole.WriteColorLine("UserCoordinationActor PreRestart because: " + reason, ConsoleColor.Cyan);
     base.PreRestart(reason, message);
 }
Пример #8
0
 protected override void PostStop()
 {
     ColorConsole.WriteColorLine("UserCoordinationActor PostStop", ConsoleColor.Cyan);
 }
Пример #9
0
 protected override void PreStart()
 {
     ColorConsole.WriteColorLine("UserCoordinationActor PreStart", ConsoleColor.Cyan);
 }
Пример #10
0
 protected override void PostRestart(Exception reason)
 {
     ColorConsole.WriteColorLine($"UserActor {userId} PostRestart because: " + reason, ConsoleColor.Yellow);
     base.PostRestart(reason);
 }
Пример #11
0
 protected override void PreRestart(Exception reason, object message)
 {
     ColorConsole.WriteColorLine($"UserActor {userId} PreRestart because: " + reason, ConsoleColor.Yellow);
     base.PreRestart(reason, message);
 }
 protected override void PostRestart(Exception reason)
 {
     ColorConsole.WriteColorLine("PlaybackStatisticsActor PostRestart because: " + reason, ConsoleColor.White);
     base.PostRestart(reason);
 }
 protected override void PreRestart(Exception reason, object message)
 {
     ColorConsole.WriteColorLine("MoviePlayCounterActor PreRestart because: " + reason, ConsoleColor.Magenta);
     base.PreRestart(reason, message);
 }
 protected override void PreStart()
 {
     ColorConsole.WriteColorLine("MoviePlayCounterActor PreStart", ConsoleColor.Magenta);
 }
 protected override void PreStart()
 {
     ColorConsole.WriteColorLine("PlaybackStatisticsActor PreStart", ConsoleColor.White);
 }
 protected override void PostStop()
 {
     ColorConsole.WriteColorLine("PlaybackStatisticsActor PostStop", ConsoleColor.White);
 }
Пример #17
0
 public UserActor(int userId)
 {
     this.userId = userId;
     ColorConsole.WriteColorLine("Setting initial behaviour to stopped", ConsoleColor.Yellow);
     Stopped();
 }
Пример #18
0
 protected override void PostRestart(Exception reason)
 {
     ColorConsole.WriteColorLine("UserCoordinationActor PostRestart because: " + reason, ConsoleColor.Cyan);
     base.PostRestart(reason);
 }
Пример #19
0
 protected override void PostStop()
 {
     ColorConsole.WriteColorLine("PlaybackActor PostStop", ConsoleColor.Green);
 }
Пример #20
0
 protected override void PreStart()
 {
     ColorConsole.WriteColorLine($"UserActor {userId} PreStart", ConsoleColor.Yellow);
 }
 protected override void PreRestart(Exception reason, object message)
 {
     ColorConsole.WriteColorLine("PlaybackStatisticsActor PreRestart because: " + reason, ConsoleColor.White);
     base.PreRestart(reason, message);
 }
 protected override void PostStop()
 {
     ColorConsole.WriteColorLine("MoviePlayCounterActor PostStop", ConsoleColor.Magenta);
 }
Пример #23
0
 protected override void PostStop()
 {
     ColorConsole.WriteColorLine($"UserActor {userId} PostStop", ConsoleColor.Yellow);
 }
 protected override void PostRestart(Exception reason)
 {
     ColorConsole.WriteColorLine("MoviePlayCounterActor PostRestart because: " + reason, ConsoleColor.Magenta);
     base.PostRestart(reason);
 }
Пример #25
0
 protected override void PreStart()
 {
     ColorConsole.WriteColorLine("PlaybackActor PreStart", ConsoleColor.Green);
 }