public async Task <MessageVM[]> GetUserConversation(IdentityUserVM loggedinUser, string getSecondUser) { var toUserId = await _userService.GetUserId(getSecondUser); var fromUser = await _chatContext.Conversation .Include(p => p.Message) .Where(p => p.UserId == loggedinUser.Id && p.ToUserId == toUserId) .Select((b) => new MessageVM { Message = b.Message.Message1, Time = b.Message.Time, IsLoggedin = true, IdentityId = b.Message.IdentityId }).ToArrayAsync(); var toUser = await _chatContext.Conversation .Include(p => p.Message) .Where(p => p.UserId == toUserId && p.ToUserId == loggedinUser.Id) .Select((b) => new MessageVM { Message = b.Message.Message1, Time = b.Message.Time, IsLoggedin = false, IdentityId = b.Message.IdentityId }).ToArrayAsync(); var conversation = fromUser.Concat(toUser).ToArray().OrderBy(e => e.Time).ToArray(); return(conversation); }
public IActionResult Index() { IdentityUser user = _userManager.GetUserAsync(User).Result; IdentityUserVM model = _mapper.Map <IdentityUserVM>(user); return(View(model)); }
public async Task <FriendRequestVM[]> CheckFriendRequests(IdentityUserVM user) { var toUser = await _userService.GetUserByUserName(user.UserName); var requests = await _friendRequestService.CheckFriendRequest(toUser); return(requests); }
private async Task <IDictionary <string, string> > GetFriendsFromDb(IdentityUserVM user) { var resut = await _chatContext.Friends .Include(e => e.Friend) .Where(p => p.IdentityId == user.Id) .ToDictionaryAsync(p => p.Friend.UserName, i => i.FriendId); return(resut); }
public async Task <FriendsVM[]> GetFriends(IdentityUserVM user) { var friends = await GetFriendsFromDb(user); var viewModel = friends.Select(p => new FriendsVM { AmountOfFriends = friends.Count(), Name = p.Key, IdentityId = p.Value }).ToArray(); return(viewModel); }
public async Task <FriendRequestVM[]> CheckFriendRequest(IdentityUserVM user) // todo add Name to DB { var requests = await _chatContext.FriendRequest .Where(p => p.ToUser == user.Id && p.HasAccepted == null) .Select(e => new FriendRequestVM { FromUser = e.FromUser, FromUserName = e.FromUserName, ToUser = e.ToUser, ToUserName = user.UserName }).ToArrayAsync(); return(requests); }
public async Task <IdentityUserVM> GetUserByUserName(string name) { var result = await _dataContext.Users.Where(p => p.UserName == name) .FirstOrDefaultAsync(); var viewModel = new IdentityUserVM { Id = result.Id, UserName = result.UserName, Email = result.Email }; return(viewModel); }
public async Task <IdentityUserVM> GetloggedinUser() { var user = _httpContextAccessor.HttpContext.User; var result = await _userManager.GetUserAsync(user); var viewModel = new IdentityUserVM { Id = result.Id, UserName = result.UserName, Email = result.Email }; return(viewModel); }