public async Task <IActionResult> GetUserChat([FromQuery] string param) { List <UserChatDto> result = new List <UserChatDto>(); try { if (param != string.Empty) { dynamic data = JsonConvert.DeserializeObject(param); UserChatDto model = JsonConvert.DeserializeObject <UserChatDto>(data.ToString()); if (model != null) { var dto = await _chatManager.GetUserChat(model); result = _mapper.Map <List <UserChatDto> >(dto); } } } catch (Exception ex) { ex.ToString(); } var obj = new { ChatResult = result }; return(StatusCode((int)HttpStatusCode.OK, obj)); }
public async Task SendMessage(UserChatDto message) { //var httpContext = Context.GetHttpContext(); //var services = httpContext.RequestServices; //var chatDalLayerInstance = (IChatDalLayer)services.GetService(typeof(IChatDalLayer)); //_chatManager = new ChatManager(chatDalLayerInstance); //Receive Message List <string> ReceiverConnectionids = _connections.GetConnections(message.Receiverid).ToList <string>(); if (ReceiverConnectionids.Count() > 0) { //Save-Receive-Message try { message.Connectionid = string.Join(",", ReceiverConnectionids); var userChatEntity = new UserChat(); userChatEntity.Connectionid = message.Connectionid; userChatEntity.Message = message.Message; userChatEntity.Messagedate = message.Messagedate; userChatEntity.Messagestatus = message.Messagestatus; userChatEntity.Receiverid = message.Receiverid; userChatEntity.Senderid = message.Senderid; userChatEntity.IsPrivate = true; await _chatManager.SaveUserChat(userChatEntity); await Clients.Clients(ReceiverConnectionids).SendAsync("ReceiveMessage", message); } catch (Exception) { } } }
public async Task SendMessageNotification(UserChatDto userChatDto) { int FriendId = await _chatQuery.GetFriendIdByUserChatDto(userChatDto); string userString = "UserId" + FriendId; await Clients.All.SendAsync(userString, userChatDto.ChatId); }
public async Task <int> GetFriendIdByUserChatDto(UserChatDto userChatDto) { var chat = await _chatRepository .GetChat() .FirstOrDefaultAsync(x => x.Id == userChatDto.ChatId); return(await _getContactBusiness.GetFriendIdByContactIdUserId(chat.ContactFriendUserId, userChatDto.UserId)); }
public async Task ReadMessageChats(UserChatDto userChatDto) { var messages = await _getMessageChatBusiness.GetListMessagesChatByUserChatDto(userChatDto); messages.ToList().ForEach(m => { _messageChatRepository.EditMessageChat(m); }); }
private void Ready() { Receive <ChatCreatedEvent>(@event => { string path = "user-chats/" + _userId; string lastMessage = String.Format("{0} created a chat with you", @event.Creator.Login); if (@event.Creator.Id == _userId) { lastMessage = "You created a chat"; } var userChat = new UserChatDto() { ChatId = @event.Id, UserId = _userId, LastMessage = lastMessage, LastMessageAuthor = @event.Creator.Login, LastMessageDate = DateTime.UtcNow }; userChat.Participants = @event.Participants .Select(x => new ChatParticipantDto() { Id = x.Id, Login = x.Login }).ToList(); string participantNames = string.Join(", ", userChat.Participants.Where(x => x.Id != _userId).Select(x => x.Login)); userChat.Name = participantNames; client.Push(path, userChat); }); Receive <ChatMessageAddedEvent>(@event => { string path = "user-chats/" + _userId; FirebaseResponse response = client.Get(path); Dictionary <string, UserChatDto> chats = response.ResultAs <Dictionary <string, UserChatDto> >(); if (chats != null && chats.Any(x => x.Value.ChatId == @event.ChatId)) { var chat = chats.First(x => x.Value.ChatId == @event.ChatId); string userChatPathLastMessage = String.Format("user-chats/{0}/{1}/LastMessage", _userId, chat.Key); client.Set(userChatPathLastMessage, @event.Message); string userChatPathLastMessageAuthor = String.Format("user-chats/{0}/{1}/LastMessageAuthor", _userId, chat.Key); client.Set(userChatPathLastMessageAuthor, @event.Author.Login); string userChatPathLastMessageDate = String.Format("user-chats/{0}/{1}/LastMessageDate", _userId, chat.Key); client.Set(userChatPathLastMessageDate, @event.Date); } }); }
public JsonResult GetByUser(Guid userId, Guid targetUserId) { string path = "user-chats/" + userId; FirebaseResponse response = client.Get(path); Dictionary <string, UserChatDto> chats = response.ResultAs <Dictionary <string, UserChatDto> >(); if (chats != null) { UserChatDto userChat = chats.Select(x => x.Value) .Where(x => x.Participants != null && x.Participants.Count == 2 && x.Participants.Any(y => y.Id == targetUserId)) .FirstOrDefault(); return(Json(userChat, JsonRequestBehavior.AllowGet)); } return(Json(null, JsonRequestBehavior.AllowGet)); }
public async Task <IList <MessageChat> > GetListMessagesChatByUserChatDto(UserChatDto userChatDto) { return(await _messageChatRepository .GetMessageChat() .Where(m => m.UserId != userChatDto.UserId && m.ChatId == userChatDto.ChatId && !m.IsSeen ).Select(m => new MessageChat { Id = m.Id, MessageText = m.MessageText, UserId = m.UserId, ChatId = m.ChatId, MessageDate = m.MessageDate, IsSeen = true } ).ToListAsync()); }
public Task <List <UserChat> > GetUserChat(UserChatDto model) { return(Task.Run(() => { List <UserChat> userChat = null; try { userChat = (from x in _dbContext.UserChat where (x.Senderid == model.Senderid && x.Receiverid == model.Receiverid) || (x.Receiverid == model.Senderid && x.Senderid == model.Receiverid) select x).ToList(); } catch (Exception ex) { ex.ToString(); userChat = null; } return userChat; })); }
/// <summary> /// Authenticate user. /// </summary> /// <param name="userName">Username.</param> /// <param name="Password">Password.</param> /// <returns>Returns user id.</returns> public async Task <List <UserChat> > GetUserChat(UserChatDto model) { return(await _chatDalLayer.GetUserChat(model)); }
public async Task Handler(UserChatDto userChatDto) { await _editMessageChatBusiness.ReadMessageChats(userChatDto); await _messageChatRepository.UnitOfWork.Save(); }
public async Task <int> GetFriendIdByUserChatDto(UserChatDto userChatDto) { return(await _getChatBusiness.GetFriendIdByUserChatDto(userChatDto)); }
public async Task ReadMessagesChat([FromBody] UserChatDto userChatDto) { await _readMessagesChatCommandHandler.Handler(userChatDto); }