private bool RegisterNewRegionUser(NewRegionUser message) { var child = Context.Child($"User:{message.UserName}"); if (child == ActorRefs.Nobody) { Context.ActorOf(Props.Create(() => new UserWorker(message.UserName)), $"User:{message.UserName}"); ActiveUsers++; if (ActiveUsers % ActiveUsersNotificationInterval == 0) { foreach (var user in Context.GetChildren()) { user.Tell(new IncomingText($"Active users in region are over {ActiveUsers}", $"{Region} Master", Region)); } } if (message.Silent) { return(true); } foreach (var user in Context.GetChildren()) { user.Tell(new IncomingText($"A new user has registered in our region - {message.UserName}", $"{Region} Master", Region)); } return(true); } return(false); }
public async Task JoinRegion(string userName, string region) { await Groups.AddToGroupAsync(Context.ConnectionId, $"RegionMaster:{region}/User:{userName}"); var message = new NewRegionUser(userName); var selection = ActorSystem.ActorSelection($"/user/RegionMaster:{region}"); selection.Tell(message); }
public IActionResult PostUsers(string userName, string region) { var message = new NewRegionUser(userName); var selection = ActorSystem.ActorSelection($"/user/RegionMaster:{region}"); selection.Tell(message); return(Ok()); }
private bool RegisterNewRegionUser(NewRegionUser message) { var child = Context.Child($"User:{message.UserName}"); if (child == ActorRefs.Nobody) { Context.ActorOf(Props.Create(() => new UserWorker(message.UserName)), $"User:{message.UserName}"); foreach (var user in Context.GetChildren()) { user.Tell(new IncomingText($"A new user has registered in our region - {message.UserName}", $"{Region} Master", Region)); } return(true); } return(false); }