示例#1
0
        // send message to the whole group
        public async Task SendToAll(Message message)
        {
            _logger.LogInformation($"Sending message: {message?.Text} to group: {message?.SessionName}");
            await Clients.Groups(message.SessionName).SendAsync("message", message);

            await _context.AddAsync(message);

            await _context.SaveChangesAsync();

            await SendToBot(message);
        }
示例#2
0
        public async void SendMessage(Message message)
        {
            using (var context = new ChatContext())
            {
                await context.AddAsync(message);

                await context.SaveChangesAsync();
            }
        }
示例#3
0
        public async Task OnUserConnected(Message message)
        {
            try
            {
                message.EventId     = Event.Connect.GetHashCode();
                message.CreatedDate = DateTime.Now;

                var userChat = chatContext.UsersChat.AsNoTracking().FirstOrDefault(x => x.ConnectionId == Context.ConnectionId);

                if (userChat != null)
                {
                    userChat.Name        = message.Name;
                    userChat.UpdatedDate = DateTime.Now;
                    chatContext.Update(userChat);
                    await chatContext.SaveChangesAsync();
                }
                else
                {
                    userChat = new UserChat();
                    userChat.ConnectionId = Context.ConnectionId;
                    userChat.Name         = message.Name;
                    userChat.CreatedDate  = DateTime.Now;
                    await chatContext.AddAsync(userChat);

                    await chatContext.SaveChangesAsync();
                }

                message.UserChatId = userChat.UserChatId;
                message.Text       = $"{message.Name} connected.";

                chatContext.Messages.Add(message);
                await chatContext.SaveChangesAsync();

                logger.LogWarning($@"User ConnectionId: {Context.ConnectionId}  Name: {Context.User?.Identity?.Name} Identifier: {Context.UserIdentifier} connected.");

                await Clients.All.SendAsync("UserConnected", message);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, ex.Message);
            }
        }
示例#4
0
        public async Task <User> Register(User user)
        {
            await _context.AddAsync(user);

            return(user);
        }