Example #1
0
        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);
        }
Example #2
0
        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);
        }