//neo4j public void DeleteUser(UserDTO user) { UserDTONeo4j neo4J = new UserDTONeo4j(user.Username, user.Followers, user.Following); _user.deleteUser(user); _userNeo4j.DeleteUser(neo4J); }
//neo4j public void AddUser(UserDTO user) { UserDTONeo4j neo4J = new UserDTONeo4j(user.Username, user.Followers, user.Following); _user.CreateUser(user); _userNeo4j.CreateUser(neo4J); }
//neo4j public void UnfollowUser(UserDTO user, UserDTO userToFollow) { UserDTONeo4j neo4J = new UserDTONeo4j(user.Username, user.Followers, user.Following); UserDTONeo4j neo4JToFollow = new UserDTONeo4j(userToFollow.Username, userToFollow.Followers, userToFollow.Following); if (_userNeo4j.IsFollowing(neo4J, neo4JToFollow)) { _user.unfollowUser(user, userToFollow); _userNeo4j.DeleteRelationship(neo4J, neo4JToFollow); } }
//neo4j public void FollowUser(UserDTO user, UserDTO userToFollow) { UserDTONeo4j neo4J = new UserDTONeo4j(user.Username, user.Followers, user.Following); UserDTONeo4j neo4JToFollow = new UserDTONeo4j(userToFollow.Username, userToFollow.Followers, userToFollow.Following); if (_userNeo4j.IsFollowing(neo4J, neo4JToFollow) == false) { _user.FollowUser(user, userToFollow); _userNeo4j.CreateRelationship(neo4J, neo4JToFollow); } }
public void CreateUser(UserDTONeo4j user) { using (var client = new GraphClient(new Uri(_connectionString), _login, _password)) { client.Connect(); client.Cypher.Create("(user:User { Username: {username}, Following: {following}, Followers: {followers}, })") .WithParam("username", user.Username) .WithParam("following", user.Following) .WithParam("followers", user.Followers) .ExecuteWithoutResults(); } }
public void DeleteUser(UserDTONeo4j user) { using (var client = new GraphClient(new Uri(_connectionString), _login, _password)) { client.Connect(); client.Cypher .Match("(user1:User)-[r:Follower]-()") .Where("user1.Username = {username}") .WithParam("username", user.Username) .Delete("r,user1") .ExecuteWithoutResults(); } }
public void DeleteRelationship(UserDTONeo4j user1, UserDTONeo4j user2) { using (var client = new GraphClient(new Uri(_connectionString), _login, _password)) { client.Connect(); client.Cypher .Match("(user1:User)-[r:Follower]-(user2:User)") .Where("user1.Username = {username1}") .AndWhere("user2.User_Id = {username2}") .WithParam("username1", user1.Username) .WithParam("username2", user2.Username) .Delete("r") .ExecuteWithoutResults(); } }
//checks whether user1 follows user2 or not public bool IsFollowing(UserDTONeo4j user1, UserDTONeo4j user2) { using (var client = new GraphClient(new Uri(_connectionString), _login, _password)) { client.Connect(); var follower = client.Cypher .Match("(user1:User)-[r:Follower]-(user2:User)") .Where((UserDTONeo4j User1) => User1.Username == user1.Username) .AndWhere((UserDTONeo4j User2) => User2.Username == user2.Username) .Return(r => r.As <Follower>()).Results; if (follower.Count() == 1) { return(true); } return(false); } }
//neo4j public string RelationshipStatus(UserDTO user1, UserDTO user2) { UserDTONeo4j neo4J = new UserDTONeo4j(user1.Username, user1.Followers, user1.Following); UserDTONeo4j neo4JToFollow = new UserDTONeo4j(user2.Username, user2.Followers, user2.Following); int length = _userNeo4j.ShortestPath(neo4J.Username, neo4JToFollow.Username); if (length == 0) { return("You have no mutual friends with " + neo4JToFollow.Username); } if (length == 1) { return("You are following " + neo4JToFollow.Username); } if (length == 2) { return("You have mutual friends with " + neo4JToFollow.Username); } else { return("You may have some mutual friends with " + neo4JToFollow.Username); } }