public async Task <FriendshipStatus> FriendshipStatus(string id1, string id2) { UserDTO user1 = await GetUserById(id1); UserDTO user2 = await GetUserById(id2); FriendshipFilter FriendFilter = new FriendshipFilter { Account = user1, Account2 = user2 }; if ((GetQuery(FriendFilter).Execute()).Any()) { return(ENUM.User.FriendshipStatus.Friend); } RequestFilter requestFilter = new RequestFilter { Sender = user1, Receiver = user2, Status = ENUM.Request.RequestStatus.Sended }; if ((GetQuery(requestFilter).Execute()).Any()) { return(ENUM.User.FriendshipStatus.Follower); } requestFilter = new RequestFilter { Sender = user2, Receiver = user1, Status = ENUM.Request.RequestStatus.Sended }; if ((GetQuery(requestFilter).Execute()).Any()) { return(ENUM.User.FriendshipStatus.SendRequest); } return(ENUM.User.FriendshipStatus.Unknown); }
public async Task <bool> AreUsersIsFriends(UserDTO User1Id, UserDTO User2Id) { FriendshipFilter filter = new FriendshipFilter { Account = User1Id, Account2 = User2Id }; return((GetQuery(filter).Execute()).Any()); }
private IQuery <FriendshipDTO> GetQuery(FriendshipFilter filter) { FriendListQuery query = new FriendListQuery((UnitOfWork)Database) { Filter = filter }; query.ClearSortCriterias(); return(query); }
public async Task <List <UserDTO> > ListFriendsOfUser(UserDTO account, int page = 0) { FriendshipFilter filter = new FriendshipFilter { Account = account }; IQuery <FriendshipDTO> query = GetQuery(filter); query.Skip = (page > 0 ? page - 1 : 0) * UserPageSize; query.Take = UserPageSize; FriendshipListDTO queryRes = new FriendshipListDTO { RequestedPage = page, ResultCount = query.GetTotalRowCount(), ResultFriendships = query.Execute(), Filter = filter }; List <UserDTO> retList = new List <UserDTO>(); foreach (FriendshipDTO friendship in queryRes.ResultFriendships) { ClientProfile tmpUs = null; if (friendship.User1Id.Equals(account.Id)) { tmpUs = await Database.ClientManager.GetById(friendship.User2Id); } else if (friendship.User2Id.Equals(account.Id)) { tmpUs = await Database.ClientManager.GetById(friendship.User1Id); } retList.Add(new UserDTO { Id = tmpUs.Id, Name = tmpUs.Name, Address = tmpUs.Address, Email = tmpUs.ApplicationUser.Email, UserName = tmpUs.ApplicationUser.UserName }); } return(retList); }