Exemplo n.º 1
0
        public async Task SendMessage(MessageAddRequest msgAdd)
        {
            int userId = _authService.GetCurrentUserId();

            msgAdd.ConversationId = msgAdd.ConversationId;
            msgAdd.Body           = msgAdd.Body;
            msgAdd.RecepientId    = msgAdd.RecepientId;
            msgAdd.UserId         = userId;

            int msgId = _messageService.Create(msgAdd, userId);

            Message msgInfo = new Message();

            msgInfo = _messageService.Get(msgId);

            MessageRecepientAddRequest msgRecAdd = new MessageRecepientAddRequest();

            msgRecAdd.ConversationId = msgAdd.ConversationId;
            msgRecAdd.MessageId      = msgId;
            msgRecAdd.TargetUserId   = msgAdd.RecepientId;
            msgRecAdd.Read           = false;

            _messageService.SendMsgToRecepient(msgRecAdd);

            if (Users.ContainsKey(msgAdd.RecepientId))
            {
                foreach (string connectionID in Users[msgAdd.RecepientId])
                {
                    await Clients.Client(connectionID).SendAsync("ReceiveMessageNoti", msgInfo);

                    await Clients.Client(connectionID).SendAsync("ReceiveMessage", msgInfo);
                }

                //await Clients.Clients(connectIds).SendAsync("ReceiveMessageNoti", msgInfo);
                //await Clients.Clients(connectIds).SendAsync("ReceiveMessage", msgInfo);
            }

            await Clients.Caller.SendAsync("ReceiveMessage", msgInfo);
        }
Exemplo n.º 2
0
        public int SendMsgToRecepient(MessageRecepientAddRequest repAdd)
        {
            int id = 0;

            _dataProvider.ExecuteNonQuery("dbo.UserMessageRecepients_Insert", (parameters) =>
            {
                SqlParameter param  = new SqlParameter();
                param.ParameterName = "@Id";
                param.SqlDbType     = SqlDbType.Int;
                param.Direction     = ParameterDirection.Output;
                parameters.Add(param);

                parameters.AddWithValue("@ConversationId", repAdd.ConversationId);
                parameters.AddWithValue("@MessageId", repAdd.MessageId);
                parameters.AddWithValue("@UserId", repAdd.TargetUserId);
                parameters.AddWithValue("@Read", repAdd.Read);
            }, (returnParams) =>
            {
                Int32.TryParse(returnParams["@Id"].Value.ToString(), out id);
            });

            return(id);
        }