public Respbase <ChatUserDto> Login(LoginReq req) { ChatFacade facade = new ChatFacade(); ChatUserDto user = facade.PXinLogin(req.Nodeid, req.Gtclientid, req.Devicetoken); return(new Respbase <ChatUserDto> { Data = user }); }
private async Task <IEnumerable <MessageDto> > GetChatMessagesAsync() { List <MessageDto> messages = new List <MessageDto>(); ChatUserDto currentChatUser = (await loadChatsService.GetChatUsersAsync(new long[] { clientConnection.UserId.GetValueOrDefault() }, request.ConversationId).ConfigureAwait(false)).FirstOrDefault(); if (request.MessagesId == null) { messages = await loadMessagesService.GetChatMessagesAsync( request.ConversationId, clientConnection.UserId.GetValueOrDefault(), request.NavigationMessageId, request.AttachmentsTypes, request.Direction.GetValueOrDefault(true), LIMIT).ConfigureAwait(false); } else { messages = await loadMessagesService.GetMessagesByIdAsync( request.MessagesId, ConversationType.Chat, request.ConversationId, clientConnection.UserId.GetValueOrDefault()).ConfigureAwait(false); } if (currentChatUser.LastReadedGlobalMessageId != null) { var lastMessage = (await loadMessagesService.GetMessagesByIdAsync( new List <Guid> { currentChatUser.LastReadedGlobalMessageId.GetValueOrDefault() }, ConversationType.Chat, request.ConversationId, clientConnection.UserId.GetValueOrDefault()).ConfigureAwait(false)).FirstOrDefault(); if (lastMessage != null) { messages.ForEach(message => { if (message.SenderId != clientConnection.UserId.GetValueOrDefault()) { if (message.SendingTime > lastMessage.SendingTime) { message.Read = false; } else { message.Read = true; } } }); } } return(messages); }
private async Task <ChatUserDto> GetUserByUserName(string username) { var user = await this.userRepository.GetUser(username); var chatUser = new ChatUserDto { UserName = user.UserName, NickName = user.NickName, Mobile = user.Mobile }; return(chatUser); }
private static ChatUser GetChatUser(ChatUserDto chatUser) { return(new ChatUser { Banned = chatUser.Banned, ChatId = chatUser.ChatId, Deleted = chatUser.Deleted, InviterId = chatUser.InviterId, Joined = chatUser.Joined, UserId = chatUser.UserId, UserRole = chatUser.UserRole, IsMuted = chatUser.IsMuted }); }
public static ChatUserVm GetChatUserVm(ChatUserDto chatUser) { return(new ChatUserVm { Banned = chatUser.Banned, ChatId = chatUser.ChatId, Deleted = chatUser.Deleted, InviterId = chatUser.InviterId, Joined = chatUser.Joined, UserId = chatUser.UserId, UserRole = chatUser.UserRole, IsMuted = chatUser.IsMuted }); }
public Respbase <ChatUserDto> AddFriendConfirm(AddFriendConfirmReq req) { ChatFacade facade = new ChatFacade(); ChatUserDto result = facade.AddFriendConfirm(req); if (result == null) { return(new Respbase <ChatUserDto> { Result = facade.PromptInfo.Result, Message = facade.PromptInfo.Message, Data = null }); } return(new Respbase <ChatUserDto> { Data = result }); }
public IActionResult AddUserToChat(int id, [FromBody] ChatUserDto chatUserDto, [FromHeader] int UserID, [FromHeader] string UserRole) { var chat = _context.Chats.Find(id); if (chat == null) { return(StatusCode(StatusCodes.Status404NotFound)); } if (_user.GetUserById(UserID) == null) { return(StatusCode(StatusCodes.Status400BadRequest)); } if (chat.CreatedBy != UserID && UserRole != "Admin") { return(StatusCode(StatusCodes.Status403Forbidden)); } _context.Entry(chat).Collection(chat => chat.ChatUsers).Load(); var newChatUser = new ChatUser() { Chat = chat, RequestPending = true, UserId = chatUserDto.UserId }; chat.ChatUsers.Add(newChatUser); _context.Chats.Update(chat); try { var success = _context.SaveChanges(); if (success < 1) { return(StatusCode(StatusCodes.Status400BadRequest)); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status400BadRequest, ex.Message)); } this._loggerCommunication.logAction("Added a new user to a chat"); return(StatusCode(StatusCodes.Status201Created, new JsonResult(chat.ChatUsers))); }
public async Task <ActionResult> Post([FromBody] ChatUserDto newUser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await this.userRepository.AddUser(new User { UserName = newUser.UserName, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now, NickName = newUser.NickName, Mobile = newUser.Mobile }); var user = await this.GetById(newUser.UserName); return(CreatedAtAction(nameof(GetById), new { userName = newUser.UserName }, user.Value)); }
public Respbase <ChatUserDto> AddFriend(AddFriendReq req) { ChatFacade facade = new ChatFacade(); ChatUserDto result = facade.AddFriend(req); if (result == null) { return(new Respbase <ChatUserDto> { Result = facade.PromptInfo.Result, Message = facade.PromptInfo.Message, Data = null }); } if (facade.PromptInfo.Result == 2) { return(new Respbase <ChatUserDto> { Result = 1, Message = facade.PromptInfo.Message, Data = result }); } return(new Respbase <ChatUserDto> { Result = 1, Message = "添加好友请求发起成功,请等待对方验证通过", Data = result }); }
private async Task SendChatMessagesReadedNoticeAsync(IEnumerable <MessageDto> messages, long chatId, long requestorId) { List <ChatUserDto> chatUsers = await loadChatsService.GetChatUsersAsync(messages.Select(message => message.SenderId.GetValueOrDefault()).Append(requestorId), chatId).ConfigureAwait(false); ChatUserDto requestorChatUser = chatUsers.FirstOrDefault(chatUser => chatUser.UserId == requestorId); foreach (var groupBySender in messages.GroupBy(message => message.SenderId)) { var clients = connectionsService.GetUserClientConnections(groupBySender.Key.GetValueOrDefault()); if (clients != null && requestorId != groupBySender.Key) { if (groupBySender.Any()) { MessagesReadedNotice notice = new MessagesReadedNotice( groupBySender.Select(opt => opt.GlobalId), ConversationType.Chat, chatId); await SendNoticeToClientsAsync(clients, notice).ConfigureAwait(false); } } } }