//Hämtar den inloggade användarens profil, med tillhörande inlägg och vänlista. public IActionResult MyProfile() { string email = User.Identity.Name; int id = personRepository.GetIdByUserIdentityEmail((string)email); Person user = personRepository.GetPersonById((int)id); List <Post> posts = postRepository.GetAllPostsByPersonId((int)id); List <FriendRequest> friends = requestRepository.GetFriendsByPersonId((int)id); PostUserViewModel postUserViewModel = CreatePostUserViewModel(posts, (int)id); FriendUserViewModel friendUserViewModel = CreateFriendUserViewModel(friends, (int)id); if (ModelState.IsValid) { ProfileViewModel profileViewModel = new ProfileViewModel { PersonId = user.PersonId, FirstName = user.FirstName, LastName = user.LastName, Description = user.Description, Picture = user.Picture, Email = user.Email, AccountHidden = user.AccountHidden, Posts = postUserViewModel, Friends = friendUserViewModel }; return(View(profileViewModel)); } //Om vi kommer hit är något fel och vi återgår till startsidan return(RedirectToAction("Index", "Home")); }
//Skapar vymodell - FriendUserViewModel, som innehåller den inloggade användarens vänner. public FriendUserViewModel CreateFriendUserViewModel(List <FriendRequest> friends, int personId) { IEnumerable <FriendViewModel> friendsViewModel = friends.Select((p) => new FriendViewModel() { FirstPerson = personRepository.GetPersonById(p.SenderId), SecondPerson = personRepository.GetPersonById(p.ReceiverId) }); FriendUserViewModel friendUserViewModel = new FriendUserViewModel { PersonId = personId, Friends = friendsViewModel.ToList() }; return(friendUserViewModel); }