private async Task <bool> GetChannelActor(JoinChannel msg) { if (string.IsNullOrEmpty(msg.ChannelName)) { return(false); } if (_ChannelActors.ContainsKey(msg.ChannelName)) { Logger.Log(Akka.Event.LogLevel.InfoLevel, $"Actor for channel '{msg.ChannelName}' already present."); return(false); } var configObject = await _ChannelConfigurationActor.Ask(new GetConfigurationForChannel(msg.ChannelName)); var config = configObject as ChannelConfiguration; if (!config.ConnectedToChannel) { config.ConnectedToChannel = true; _ChannelConfigurationActor.Tell(new SaveConfigurationForChannel(msg.ChannelName, config)); } var child = Context.ActorOf(ChannelActor.Props(config), $"channel_{msg.ChannelName}"); _ChannelActors.Add(msg.ChannelName, child); // Track followers for that channel? _FollowerActor.Tell(new TrackNewFollowers(msg.ChannelName, config.ChannelId)); return(true); }
private bool GetChannelActor(JoinChannel msg) { if (_ChannelActors.ContainsKey(msg.ChannelName)) { Logger.Log(Akka.Event.LogLevel.InfoLevel, $"Actor for channel '{msg.ChannelName}' already present."); return false; } var config = DataContext.GetConfigurationForChannel(msg.ChannelName); var child = Context.ActorOf(ChannelActor.Props(config), $"channel_{msg.ChannelName}"); _ChannelActors.Add(msg.ChannelName, child); return true; }
private bool GetChannelActor(JoinChannel msg) { if (string.IsNullOrEmpty(msg.ChannelName)) { return(false); } if (_ChannelActors.ContainsKey(msg.ChannelName)) { Logger.Log(Akka.Event.LogLevel.InfoLevel, $"Actor for channel '{msg.ChannelName}' already present."); return(false); } var config = _ChannelConfigurationActor.Ask <ChannelConfiguration>(new GetConfigurationForChannel(msg.ChannelName)).GetAwaiter().GetResult(); var child = Context.ActorOf(ChannelActor.Props(config), $"channel_{msg.ChannelName}"); _ChannelActors.Add(msg.ChannelName, child); // Track followers for that channel? _FollowerActor.Tell(new TrackNewFollowers(msg.ChannelName, config.ChannelId)); return(true); }