public TResult GetVertices <TResult>(sones.Library.Commons.Security.SecurityToken mySecurityToken, Int64 myTransactionToken, RequestGetVertices myRequestGetVertices, Converter.GetVerticesResultConverter <TResult> myOutputconverter) { return(_iGraphDB.GetVertices <TResult>(mySecurityToken, myTransactionToken, myRequestGetVertices, myOutputconverter)); }
private static void MatchData(DataContainer data, IExpressionGraph resultGraph, IGraphDB myGraphDB, SecurityToken mySecurityToken, Int64 myTransactionToken, TypesOfOperators myTypeOfOperator, BinaryOperator myOperator, String myExpressionIndex) { #region data LevelKey myLevelKey = CreateLevelKey(data.IDChainDefinitions.Item1, myGraphDB, mySecurityToken, myTransactionToken); #endregion var vertices = myGraphDB.GetVertices <List <IVertex> >( mySecurityToken, myTransactionToken, new GraphDB.Request.RequestGetVertices( new BinaryExpression( new PropertyExpression(data.IDChainDefinitions.Item1.LastType.Name, data.IDChainDefinitions.Item1.LastAttribute.Name), myOperator, GenerateLiteral(data.Operands.Item1, ((IPropertyDefinition)data.IDChainDefinitions.Item1.LastAttribute).BaseType), myExpressionIndex)), (stats, vertexEnumerable) => vertexEnumerable.ToList()); foreach (var aVertex in vertices) { IntegrateInGraph(aVertex, resultGraph, myLevelKey, myTypeOfOperator); } if (resultGraph.ContainsLevelKey(myLevelKey)) { #region clean lower levels if (myTypeOfOperator == TypesOfOperators.AffectsLowerLevels) { CleanLowerLevel(myLevelKey, resultGraph, myGraphDB, mySecurityToken, myTransactionToken); } #endregion } else { resultGraph.AddEmptyLevel(myLevelKey); } }
private RequestUpdate GenerateUpdateRequest(IGraphDB myGraphDB, GQLPluginManager myPluginManager, SecurityToken mySecurityToken, TransactionToken myTransactionToken) { IEnumerable<IVertex> toBeupdatedVertices = null; //prepare var vertexType = myGraphDB.GetVertexType<IVertexType>( mySecurityToken, myTransactionToken, new RequestGetVertexType(_TypeName), (stats, vtype) => vtype); if (_vertexIDs == null) { if (_WhereExpression != null) { //validate _WhereExpression.Validate(myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, vertexType); //calculate var expressionGraph = _WhereExpression.Calculon(myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, new CommonUsageGraph(myGraphDB, mySecurityToken, myTransactionToken), false); //extract toBeupdatedVertices = expressionGraph.Select(new LevelKey(vertexType.ID, myGraphDB, mySecurityToken, myTransactionToken), null, true); } else { toBeupdatedVertices = myGraphDB.GetVertices<IEnumerable<IVertex>>( mySecurityToken, myTransactionToken, new RequestGetVertices(vertexType.ID), (stats, vertices) => vertices); } } else { toBeupdatedVertices = _vertexIDs; } var result = new RequestUpdate(new RequestGetVertices(vertexType.ID, toBeupdatedVertices.Select(_ => _.VertexID) , false)); ProcessListOfUpdates(vertexType, myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, ref result); return result; }
private RequestUpdate GenerateUpdateRequest(IGraphDB myGraphDB, GQLPluginManager myPluginManager, SecurityToken mySecurityToken, Int64 myTransactionToken) { IEnumerable <IVertex> toBeupdatedVertices = null; //prepare var vertexType = myGraphDB.GetVertexType <IVertexType>( mySecurityToken, myTransactionToken, new RequestGetVertexType(_TypeName), (stats, vtype) => vtype); RequestUpdate result = null; if (_vertexIDs == null) { if (_WhereExpression != null) { //validate _WhereExpression.Validate(myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, vertexType); //calculate var expressionGraph = _WhereExpression.Calculon(myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, new CommonUsageGraph(myGraphDB, mySecurityToken, myTransactionToken), false); //extract toBeupdatedVertices = expressionGraph.Select(new LevelKey(vertexType.ID, myGraphDB, mySecurityToken, myTransactionToken), null, true); result = new RequestUpdate( new RequestGetVertices(toBeupdatedVertices .Select(_ => _.VertexTypeID) .FirstOrDefault(), toBeupdatedVertices.Select(_ => _.VertexID), false)); } else { toBeupdatedVertices = myGraphDB.GetVertices <IEnumerable <IVertex> >( mySecurityToken, myTransactionToken, new RequestGetVertices(vertexType.ID), (stats, vertices) => vertices); } } else { toBeupdatedVertices = _vertexIDs; } if (result == null) { result = new RequestUpdate(new RequestGetVertices(vertexType.ID, toBeupdatedVertices .Select(_ => _.VertexID), false)); } ProcessListOfUpdates(vertexType, myPluginManager, myGraphDB, mySecurityToken, myTransactionToken, ref result); return(result); }
private static void MatchData(DataContainer data, IExpressionGraph resultGraph, IGraphDB myGraphDB, SecurityToken mySecurityToken, Int64 myTransactionToken, TypesOfOperators myTypeOfOperator, BinaryOperator myOperator) { #region data LevelKey myLevelKey = CreateLevelKey(data.IDChainDefinitions.Item1, myGraphDB, mySecurityToken, myTransactionToken); #endregion var vertices = myGraphDB.GetVertices<List<IVertex>>( mySecurityToken, myTransactionToken, new GraphDB.Request.RequestGetVertices( new BinaryExpression( new PropertyExpression(data.IDChainDefinitions.Item1.LastType.Name, data.IDChainDefinitions.Item1.LastAttribute.Name), myOperator, GenerateLiteral(data.Operands.Item1, ((IPropertyDefinition)data.IDChainDefinitions.Item1.LastAttribute).BaseType))), (stats, vertexEnumerable) => vertexEnumerable.ToList()); foreach (var aVertex in vertices) { IntegrateInGraph(aVertex, resultGraph, myLevelKey, myTypeOfOperator); } if (resultGraph.ContainsLevelKey(myLevelKey)) { #region clean lower levels if (myTypeOfOperator == TypesOfOperators.AffectsLowerLevels) { CleanLowerLevel(myLevelKey, resultGraph, myGraphDB, mySecurityToken, myTransactionToken); } #endregion } else { resultGraph.AddEmptyLevel(myLevelKey); } }