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); }
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); }
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); }
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); } }
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); }
protected override void PreRestart(Exception reason, object message) { ColorConsole.WriteColorLine("UserCoordinationActor PreRestart because: " + reason, ConsoleColor.Cyan); base.PreRestart(reason, message); }
protected override void PostStop() { ColorConsole.WriteColorLine("UserCoordinationActor PostStop", ConsoleColor.Cyan); }
protected override void PreStart() { ColorConsole.WriteColorLine("UserCoordinationActor PreStart", ConsoleColor.Cyan); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteColorLine($"UserActor {userId} PostRestart because: " + reason, ConsoleColor.Yellow); base.PostRestart(reason); }
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); }
public UserActor(int userId) { this.userId = userId; ColorConsole.WriteColorLine("Setting initial behaviour to stopped", ConsoleColor.Yellow); Stopped(); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteColorLine("UserCoordinationActor PostRestart because: " + reason, ConsoleColor.Cyan); base.PostRestart(reason); }
protected override void PostStop() { ColorConsole.WriteColorLine("PlaybackActor PostStop", ConsoleColor.Green); }
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); }
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); }
protected override void PreStart() { ColorConsole.WriteColorLine("PlaybackActor PreStart", ConsoleColor.Green); }