public async Task <ListResultDto <ChatSessionDto> > GetUserSessions(GetUserSessionsInput input) { var list = await _chatSessionMemberRepository.GetAllIncluding(member => member.ChatSession) .Where(member => member.UserId == input.User.UserId) .Select(member => member.ChatSession) .ToListAsync(_httpContextAccessor.HttpContext.RequestAborted); var dtos = list.Select(item => { ChatSessionDto chatSessionDto = ObjectMapper.Map <ChatSessionDto>(item); if (chatSessionDto.SessionType == ChatSessionType.Private) { var rs = GetUserByPrivateSessionName(item.Name); if (rs != null) { if (rs.Item1.TenantId != input.User.TenantId && rs.Item1.UserId != input.User.UserId) { chatSessionDto.SourceTenantId = rs.Item1.TenantId; chatSessionDto.Name = _userRepository.GetAll().Where(u => u.Id == rs.Item1.UserId).Select(u => u.Name).SingleOrDefault(); } if (rs.Item2.TenantId != input.User.TenantId && rs.Item2.UserId != input.User.UserId) { chatSessionDto.SourceTenantId = rs.Item2.TenantId; chatSessionDto.Name = _userRepository.GetAll().Where(u => u.Id == rs.Item2.UserId).Select(u => u.Name).SingleOrDefault(); } } } return(chatSessionDto); }).ToList(); return(new ListResultDto <ChatSessionDto>(dtos)); }
public async Task <IList <long> > GetUserSessionsId(GetUserSessionsInput input) { var list = await _chatSessionMemberRepository.GetAll() .Where(member => member.UserId == input.User.UserId) .Select(member => member.SessionId) .ToListAsync(); return(list); }