Пример #1
0
        public async Task Notify(Guid receiverId, string message)
        {
            if (Guid.TryParse(Context.UserIdentifier, out Guid userId))
            {
                Group group = await _groupRepository.GetByIdAsync(receiverId);

                if (group != null)
                {
                    Message msg = await _messageService.CreateMessageAsync(userId, message, null, group.Id);

                    //todo: need to save ConnectionId in DB
                    await Clients.Client(Context.ConnectionId).SendAsync("Receive", MessageViewModelService.ConvertTo(msg, userId, receiverId));

                    await Clients.GroupExcept(group.Id.ToString(), Context.ConnectionId).SendAsync("Receive", MessageViewModelService.ConvertTo(msg, null, receiverId));
                }
                else
                {
                    Message msg = await _messageService.CreateMessageAsync(userId, message, receiverId, null);

                    await Clients.User(userId.ToString()).SendAsync("Receive", MessageViewModelService.ConvertTo(msg, userId, receiverId));

                    await Clients.User(receiverId.ToString()).SendAsync("Receive", MessageViewModelService.ConvertTo(msg, receiverId, userId));
                }
            }
        }
Пример #2
0
 public MessageController(AuthService authService,
                          MessageViewModelService messageViewModelService)
 {
     _authService             = authService;
     _messageViewModelService = messageViewModelService;
 }