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); }
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); }