Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }