private GraphResultSet CreateGraphResultSet(RowSet rs, IGraphTypeSerializer serializer) { return(GraphResultSet.CreateNew( rs, serializer.GraphProtocol, serializer.GetGraphRowParser())); }
/// <summary> /// Gets the personalized video suggestions for a specific user. /// Based on DSL tutorial provided here, we changed the recommendation from pre-aggration /// tables to real-time graph recommendation. /// https://academy.datastax.com/content/gremlin-dsls-net-dse-graph /// </summary> public override async Task <GetSuggestedForUserResponse> GetSuggestedForUser(GetSuggestedForUserRequest request, ServerCallContext context) { Logger.Information("Request suggested video(s) for user {user}", request.UserId.Value); GraphTraversalSource g = DseGraph.Traversal(_session); // DSL Baby ! var traversal = g.RecommendVideos(request.UserId.ToGuid().ToString(), 5, 4, 1000, 5); GraphResultSet result = await _session.ExecuteGraphAsync(traversal); // Building GRPC response from list of results vertices (hopefully 'numberOfVideosExpected') var grpcResponse = new GetSuggestedForUserResponse { UserId = request.UserId, PagingState = "" }; foreach (IVertex vertex in result.To <IVertex>()) { Logger.Information("Result " + vertex); grpcResponse.Videos.Add(MapVertexToVideoPreview(vertex)); } return(grpcResponse); }
private static void VerifyGraphResultSet(GraphResultSet rs) { var v = rs.First().ToVertex(); Assert.AreEqual("person", v.Label); Assert.AreEqual("marko", v.GetProperty("name").Value.ToString()); Assert.AreEqual(29, v.GetProperty("age").Value.ToInt32()); }
private static void VerifyGraphResultSet(ISession session, GraphResultSet rs) { var v = rs.First().ToVertex(); Assert.AreEqual("person", v.Label); TestHelper.FillVertexProperties(session, v); Assert.AreEqual("marko", v.GetProperty("name").Value.ToString()); Assert.AreEqual(29, v.GetProperty("age").Value.ToInt32()); }
public async Task <GraphResultSet> ExecuteGraphAsync(IGraphStatement graphStatement) { var stmt = graphStatement.ToIStatement(_config.GraphOptions); await GetAnalyticsMaster(stmt, graphStatement).ConfigureAwait(false); var rs = await _coreSession.ExecuteAsync(stmt).ConfigureAwait(false); return(GraphResultSet.CreateNew(rs, graphStatement, _config.GraphOptions)); }
private void ValidateVertexResult(GraphResultSet rs, string vertexLabel, string propertyName, string expectedValueString) { var first = rs.FirstOrDefault(); Assert.NotNull(first); var vertex = first.ToVertex(); Assert.AreEqual(vertex.Label, vertexLabel); var valueString = vertex.Properties[propertyName].ToArray()[0].Get <string>("value"); Assert.AreEqual(valueString, expectedValueString); }
private void ValidateVertexResult(GraphResultSet rs, string vertexLabel, string propertyName, string expectedValueString) { var first = rs.FirstOrDefault(); Assert.NotNull(first); var vertex = first.ToVertex(); Assert.AreEqual(vertex.Label, vertexLabel); var valueString = vertex.Properties[propertyName].ToArray()[0].Get<string>("value"); Assert.AreEqual(valueString, expectedValueString); }