Ejemplo n.º 1
0
        public async Task <int> CreateMessage(ChatCreateRequest request)
        {
            var checkSender = await _context.Users.FirstAsync(x => x.Id == request.senderId);

            var checkRoleSender = await _userManager.GetRolesAsync(checkSender);

            var chat = new Chat();

            if (checkRoleSender[0] == "User")
            {
                chat = new Chat()
                {
                    createDate = DateTime.Now,
                    content    = request.content,
                    senderId   = request.senderId,
                    receiverId = adminId,
                };
            }
            else
            {
                chat = new Chat()
                {
                    createDate = DateTime.Now,
                    content    = request.content,
                    senderId   = request.senderId,
                    //receiverId = request.receiverId,
                    receiverId = request.receiverId.Value,
                };
            }
            _context.chats.Add(chat);
            await _context.SaveChangesAsync();

            return(chat.id);
        }
        public void OnActionExecuting(ActionExecutingContext context)
        {
            foreach (var argument in context.ActionArguments.Values.Where(v => v is ChatCreateRequest))
            {
                ChatCreateRequest command = argument as ChatCreateRequest;

                _chatValidationService.RequireDifferentUsersForChatCreation(command.Username);

                _groupValidationService.RequireUsernameIsGroupMember(command.Username, command.GroupId);

                _chatValidationService.RequireChatBetweenUsersInGroupDoesNotExist(command.Username, command.GroupId);
            }
        }
Ejemplo n.º 3
0
        public void Create(ChatCreateRequest chatCreateRequest)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString())) {
                conn.Open();

                using (var cmd = new SqlCommand()) {
                    cmd.Connection  = conn;
                    cmd.CommandText = _chatSql.SqlCreate();
                    cmd.CommandType = CommandType.Text;
                    cmd.Parameters.AddWithValue("@UserId", GetDbValue(chatCreateRequest.UserId));
                    cmd.Parameters.AddWithValue("@Message", GetDbValue(chatCreateRequest.Message));
                    cmd.ExecuteNonQuery();
                }
            }
        }
        /*public async Task UserOnlineList()
         * {
         *  var userIdOnlineList = _connections.GetOnlineUsers();
         *  var userOnlineList = await _chatService.GetUserOnlines(userIdOnlineList);
         *  await Clients.Client(Context.ConnectionId).SendAsync("UserOnlineList", userOnlineList);
         * }*/
        //
        //
        public async Task SendMessage(ChatCreateRequest _message)
        {
            var messageId = await _chatService.CreateMessage(_message);

            var message = await _chatService.GetMessageById(messageId);

            //Receive Message
            List <string> ReceiverConnectionids = _connections.GetConnections(message.receiverId).ToList <string>();

            if (ReceiverConnectionids.Count() > 0)
            {
                //Save-Receive-Message
                try
                {
                    var notify = new NotifyViewModel()
                    {
                        notify     = $"Bạn đã nhận tin nhắn từ {message.sender.displayname}",
                        link       = null,
                        senderId   = message.senderId,
                        receiverId = message.receiverId,
                        isViewed   = false,
                        status     = enums.NotifyStatus.chat,
                    };
                    List <string> connects = _connections.GetConnections(message.receiverId).ToList <string>();
                    await Clients.All.SendAsync("ReceiveNotify", notify);

                    //
                    ReceiverConnectionids.Add(_message.connectionId);

                    await Clients.Clients(ReceiverConnectionids).SendAsync("ReceiveMessage", message);
                }
                catch (Exception) { }
            }
            else
            {
                await Clients.Client(_message.connectionId).SendAsync("ReceiveMessage", message);
            }
        }
Ejemplo n.º 5
0
 public void Create(ChatCreateRequest chatCreateRequest)
 {
     _chatRepository.Create(chatCreateRequest);
     List(true);
 }
Ejemplo n.º 6
0
 public void Create([FromBody] ChatCreateRequest chatCreateRequest)
 {
     _chatService.Create(chatCreateRequest);
 }
Ejemplo n.º 7
0
 public async Task <TLChat> CreateChat([FromBody] ChatCreateRequest request)
 {
     return(await clientConnector.CreateChat(request.UserId, request.UserHash, request.Title));
 }
Ejemplo n.º 8
0
        public IActionResult Create(ChatCreateRequest command)
        {
            var chat = _chatService.Create(command.GroupId, command.Username);

            return(Created($"/api/chat/{@chat.Id}", null));
        }