public List<FriendViewModel> FriendRequest(string userId) { var friends = db.Friends.Where(x => x.FriendId == userId && !x.FriendStatus); var friendRequest = new List<FriendViewModel>(); foreach (var item in friends) { var request = new FriendViewModel { FriendId = item.FriendsListId, Name = item.FriendList.User.FirstName + " " + item.FriendList.User.LastName, ProfileImgUrl = UrlImage("avatar", item.FriendsListId), UserName = item.FriendList.User.UserName }; friendRequest.Add(request); } return friendRequest; }
private void FriendToast(string receiverId) { try { var receiver = db.Users.FirstOrDefault(x => x.UserID.Equals(receiverId, StringComparison.InvariantCultureIgnoreCase)); var sender = db.Users.FirstOrDefault(x => x.UserID.Equals(CurrentUserID, StringComparison.InvariantCultureIgnoreCase)); if (sender != null && receiver != null) { //create toast for notif var toastUrl = Url.Action(sender.UserName, "profile"); var toastMessage = string.Format(NotificationMessage.NOTIF_ADD_FRIEND, sender.FirstName + " " + sender.LastName, sender.Gender ? "his" : "her"); //create sub hub context var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); var data = db.Friends.Where(x => x.FriendId == receiver.UserID && !x.FriendStatus).ToList(); var friendRequest = new List<FriendViewModel>(); foreach (var item in data) { var requester = db.Users.First(x => x.UserID == item.FriendsListId); var request = new FriendViewModel { FriendId = item.FriendsListId, Name = requester.FirstName + " " + requester.LastName, ProfileImgUrl = UrlImage("avatar", item.FriendsListId), UserName = requester.UserName }; friendRequest.Add(request); } var html = RenderPartialViewToString("FriendRequest", friendRequest); hubContext.Clients.All.updateRequest(receiver.UserID, html); hubContext.Clients.All.toastNotif(receiver.UserID, toastUrl, toastMessage); } } catch (Exception exception) { Helper.WriteLog(exception); } }
public List<FriendViewModel> FriendList(string userId) { var list = db.FriendLists.FirstOrDefault(x => x.Id == userId).Friends.Where(x => x.FriendStatus); var friendList = new List<FriendViewModel>(); foreach (var item in list) { var request = new FriendViewModel { FriendId = item.FriendId, Name = item.User.FirstName + " " + item.User.LastName, ProfileImgUrl = UrlImage("avatar", item.FriendId) }; friendList.Add(request); } return friendList; }