public IActionResult UserSearchResults(string email) { var user = new ApplicationUser(); var model = new UserSearchResultsViewModel(); model.AppUser = _myShelfDataService.GetUser(email); model.PeopleIFollow = _myShelfDataService.GetUsersIFollow(User.Identity.Name); model.PeoplePendingFollow = _myShelfDataService.ListFollowsRequestedByUser(User.Identity.Name); var tempList = new List <string>(); //list of Ids of people I follow foreach (var person in model.PeopleIFollow) { tempList.Add(person.Id); } var tempList2 = new List <string>(); //list of Ids of people I requested to follow foreach (var person in model.PeoplePendingFollow) { tempList2.Add(person.Id); } if (tempList.Contains(model.AppUser.Id)) { model.IsFollowing = true; } else if (tempList2.Contains(model.AppUser.Id)) { model.PendingFollowing = true; } return(View("UserSearchResults", model)); }
//Need to create users and followers junction table, temp junction table for pending requests public IActionResult RequestToFollow(UserSearchResultsViewModel model) { var follower = User.Identity.Name; var followee = new ApplicationUser(); if (ModelState.IsValid) { followee.UserName = model.AppUser.UserName; _myShelfDataService.CreatePendingFollowRequest(follower, followee.UserName); model.PendingFollowing = true; } //need to figure out how to redirect to return(RedirectToAction("UserSearchResults", new { email = model.AppUser.Email })); }
public async Task <UserSearchResultsListViewModel> SearchForUsers(UserSearchViewModel userSearchViewModel) { UserSearchResultsListViewModel userSearchResults = new UserSearchResultsListViewModel(); List <UserSearchResultsViewModel> userSearchResultList = new List <UserSearchResultsViewModel>(); userSearchResults.Users = userSearchResultList; if (userSearchViewModel.City != null) { string city = userSearchViewModel.City; List <ApplicationUser> usersByCity = (List <ApplicationUser>) await CommandFactory.CreateCommand(CommandFactory.GET_USERS_BY_CITY, city, _dbContext).Execute(); foreach (ApplicationUser user in usersByCity) { UserSearchResultsViewModel userSearchResultsViewModel = new UserSearchResultsViewModel(); int numberOfRecommendations = 0; userSearchResultsViewModel.UserId = user.Id; userSearchResultsViewModel.Forename = user.Forename; userSearchResultsViewModel.Surname = user.Surname; userSearchResultsViewModel.IdentificationVerified = user.IdentificationVerified; userSearchResultsViewModel.AddressVerified = user.AddressVerified; userSearchResultsViewModel.DBSChecked = user.DBSChecked; userSearchResultsViewModel.BoardingLicenseVerified = user.BoardingLicenseVerified; if (user.ReceivedReviews != null) { foreach (UserReview userReview in user.ReceivedReviews) { if (userReview.Recommended) { numberOfRecommendations = numberOfRecommendations + 1; } } } userSearchResultsViewModel.NumberOfRecommendations = numberOfRecommendations; userSearchResultsViewModel.PhotoFolderSource = user.PhotoFolderSource; userSearchResults.Users.Add(userSearchResultsViewModel); } } return(userSearchResults); }