public static CompleteProfile GetGroupSuggestionByBasicProfile(string referenceKey) { var _address = "http://ef1ead3b4.hosted.neo4j.org:7968"; var _host = "ef1ead3b4.hosted.neo4j.org:7968"; var _content = "application/json"; var _authorization = "Basic NmI5YzY4M2VkOmI2MzZjMjgxOA=="; RestClient client = new RestClient(_address); CompleteProfile profile = null; List<Node> result = new List<Node>(); var request = new RestRequest(); request.Method = Method.POST; request.RequestFormat = DataFormat.Json; request.Resource = "/db/data/cypher"; //request.AddHeader("Content-Length", requestText.Length.ToString()); request.AddHeader("Host", _host); request.AddHeader("Accept", _content); request.AddHeader("Content-Type", _content); request.AddHeader("Authorization", _authorization); CypherQuery query = new CypherQuery(); query.query = "START origin=node(" + "1" + ") " + "MATCH origin-[:is_known_for]->tag, " + "tag<-[:is_known_for]-colleague, " + "colleague-[:is_group_member_of]-group " + "WHERE NOT (group<-[:is_group_member_of]-origin) " + "RETURN DISTINCT id(group) as Id, group.Key? as Key, group.Name? as Name " + "LIMIT 1"; request.AddBody(query); var response = client.Execute<CypherQueryResults>(request); var thisColumns = response.Data.columns; var thisData = response.Data.data; foreach (var l in thisData) { result.Add(new Node { Id = Int32.Parse(l[0]), Key = l[1], Name = l[2] }); } if (result.Count > 0) { profile = new CompleteProfile { BasicProfile = new BasicProfile { ReferenceKey = new Guid(result[0].Key), ReferenceType = AccountType.Group }, FullName = result[0].Name, Description1 = "", Description2 = "" }; } return profile; }
public static CompleteProfile GetWorkContactSuggestionByBasicProfile(string referenceKey) { var _address = "http://ef1ead3b4.hosted.neo4j.org:7968"; var _host = "ef1ead3b4.hosted.neo4j.org:7968"; var _content = "application/json"; var _authorization = "Basic NmI5YzY4M2VkOmI2MzZjMjgxOA=="; RestClient client = new RestClient(_address); CompleteProfile profile = null; List<Node> result = new List<Node>(); var request = new RestRequest(); request.Method = Method.POST; request.RequestFormat = DataFormat.Json; request.Resource = "/db/data/cypher"; //request.AddHeader("Content-Length", requestText.Length.ToString()); request.AddHeader("Host", _host); request.AddHeader("Accept", _content); request.AddHeader("Content-Type", _content); request.AddHeader("Authorization", _authorization); CypherQuery query = new CypherQuery(); query.query = "START origin=node(" + "1" + ") MATCH coworker-[:works_at]->company<-[:works_at]-origin " + "RETURN id(coworker) as Id, coworker.Key as Key, coworker.Name as Name " + "LIMIT 1"; //query.query = "START origin=node(" + "1" + ") MATCH origin-[:has_downstream_friend|has_upstream_friend*1..3]-my_partner, " + // "my_partner-[:is_known_for]->tag," + " coworker-[:works_at]->company<-[:works_at]-origin, " + // "my_coworkers_partner-[:has_downstream_friend|has_upstream_friend*1..3]-coworker, " + // "tag<-[:is_known_for]-my_coworkers_partner " + // "RETURN id(coworker) as Id, coworker.Key as Key, coworker.Name as Name " + // "LIMIT 1"; request.AddBody(query); var response = client.Execute<CypherQueryResults>(request); var thisColumns = response.Data.columns; var thisData = response.Data.data; foreach (var l in thisData) { result.Add(new Node { Id = Int32.Parse(l[0]), Key = l[1], Name = l[2] }); } if (result.Count > 0) { profile = new CompleteProfile { BasicProfile = new BasicProfile { ReferenceKey = new Guid(result[0].Key), ReferenceType = AccountType.UserAccount }, FullName = result[0].Name, Description1 = "", Description2 = "" }; } return profile; }