Example #1
0
        public Task SendTo(Message message)
        {
            string  userId = Context.UserIdentifier;
            AppUser user   = userManager.FindByIdAsync(userId).Result;

            if (userManager.IsInRoleAsync(user, "student").Result)
            {
                Client toClient = context.Clients
                                  .Include(c => c.ClientUser)
                                  .First(c => c.ClientId == Int64.Parse(message.Id));
                var messageForUser = NewMessage.Create(Context.Items["Name"] as string, message);
                return(Clients.User(toClient.ClientUser.Id).Send(messageForUser));
            }
            else if (userManager.IsInRoleAsync(user, "client").Result)
            {
                Student toStudent = context.Students
                                    .Include(s => s.StudentUser)
                                    .First(c => c.StudentId == Int64.Parse(message.Id));

                var messageForUser = NewMessage.Create(Context.Items["Name"] as string, message);
                return(Clients.User(toStudent.StudentUser.Id).Send(messageForUser));
            }

            return(Task.CompletedTask);
        }
        public Task SendToAll(Message message)
        {
            var messageForAll = NewMessage.Create(
                Context.Items[Name] as string,
                message);

            return(Clients.Others.Send(messageForAll));
        }
 private NewMessage GetInfoMessage(string info, string text = null)
 {
     return(NewMessage.Create(
                Context.ConnectionId,
                new Message
     {
         Title = $"{info}, from ID:{Context.ConnectionId}",
         Text = text ?? string.Empty
     }
                ));
 }
Example #4
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                var newMessageForAnonymous = NewMessage.Create("System", messageForAnonymous);
                await hubContext.Clients.User("Anonymous").Send(newMessageForAnonymous);

                var newMessageForSubscribers = NewMessage.Create("System", messageForSubscribers);
                await hubContext.Clients.Group("Subscribers").Send(newMessageForSubscribers);

                await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
            }
        }
Example #5
0
        public Task SendToOthers(Message message)
        {
            var messageForClient = NewMessage.Create(Context.Items["Name"] as string, message);

            return(Clients.Others.Send(messageForClient));
        }
Example #6
0
        public Task SendToOthers(Message message)
        {
            var messageForClient = NewMessage.Create(Context.UserIdentifier, message);

            return(Clients.Others.Send(messageForClient));
        }