Example #1
0
        public bool SaveDriverMessage(ChatMessagePayload payload)
        {
            var user = _userRepository.Query(p => p.DriverC == payload.DriverC).FirstOrDefault();

            if (user != null)
            {
                var message = new ChatMessage()
                {
                    DriverUserId = user.Id,
                    Message      = payload.Message,
                    Create_At    = DateTime.Now,
                    IsDriver     = true
                };

                _chatMessageRepository.Add(message);
                SaveChatMessage();
                return(true);
            }

            return(false);
        }
        public ChatMessage CreateChatMessage(Guid userId, Guid roomId, string text)
        {
            var user = _userService.GetUser(userId);

            var message = new ChatMessage()
            {
                User       = user,
                ChatRoomId = roomId,
                Text       = text
            };

            _chatMessageRepository.Add(message);
            _unitOfWork.Commit();

            return(message);
        }
        public async Task SendChatMessage(ChatMessage msg)
        {
            if (_acessor.Type == UserType.Provider)
            {
                msg.ProviderId = _acessor.UserId;
            }
            else
            {
                msg.ClientId = _acessor.UserId;
            }

            msg.SenderName = _acessor.Name;

            await _chatRepository.Add(msg);

            await _chatRepository.SaveChanges();

            await Clients.User(_acessor.Type == UserType.Provider?msg.ClientId.ToString() : msg.ProviderId.ToString())
            .SendAsync("receiveChatMessage", msg);
        }