internal RemoteSingleEdge(ServiceSingleEdgeInstance mySvcEdgeInstance, IServiceToken myServiceToken) : base(mySvcEdgeInstance, myServiceToken) { _EdgeTypeID = mySvcEdgeInstance.TypeID; _EdgePropertyID = mySvcEdgeInstance.EdgePropertyID; _SourceVertex = new RemoteVertex(mySvcEdgeInstance.SourceVertex, _ServiceToken); _TargetVertex = new RemoteVertex(mySvcEdgeInstance.TargetVertex, _ServiceToken); }
internal IHyperEdgeView ToHyperEdgeView(IServiceToken myServiceToken) { Dictionary<String, Object> properties = new Dictionary<string, object>(); foreach (var item in this.PropertyList) properties.Add(item.Item1, item.Item2); return new HyperEdgeView(properties, this.Edges.Select(x => x.ToSingleEdgeView(myServiceToken))); }
internal RemotePropertyDefinition(ServicePropertyDefinition mySvcPropertyDefinition, IServiceToken myServiceToken) { _ServiceToken = myServiceToken; this.IsMandatory = mySvcPropertyDefinition.IsMandatory; this.IsUserDefined = mySvcPropertyDefinition.IsUserDefined; this.IsUserDefinedType = mySvcPropertyDefinition.IsUserDefinedType; this.BaseType = Type.GetType(mySvcPropertyDefinition.BaseType); switch (mySvcPropertyDefinition.Multiplicity) { case ServicePropertyMultiplicity.Single: this.Multiplicity = PropertyMultiplicity.Single; break; case ServicePropertyMultiplicity.Set: this.Multiplicity = PropertyMultiplicity.Set; break; case ServicePropertyMultiplicity.List: this.Multiplicity = PropertyMultiplicity.List; break; } this._InIndices = mySvcPropertyDefinition.InIndices; this.DefaultValue = (IComparable)mySvcPropertyDefinition.DefaultValue; this.ID = mySvcPropertyDefinition.ID; this.Name = mySvcPropertyDefinition.Name; this.RelatedType = ConvertHelper.ToBaseType(mySvcPropertyDefinition.RelatedType, _ServiceToken); }
/// <summary> /// 检查JS SDK令牌。 /// </summary> /// <returns></returns> public async Task CheckJavascriptToken() { if (JavascriptToken == null || JavascriptToken.ExpiredDate < DateTime.Now) { JavascriptToken = await RefreshJavascriptToken(); } }
internal RemotePropertyDefinition(ServicePropertyDefinition mySvcPropertyDefinition, IServiceToken myServiceToken) { _ServiceToken = myServiceToken; this.IsMandatory = mySvcPropertyDefinition.IsMandatory; this.IsUserDefined = mySvcPropertyDefinition.IsUserDefined; this.IsUserDefinedType = mySvcPropertyDefinition.IsUserDefinedType; this.BaseType = Type.GetType(mySvcPropertyDefinition.BaseType); switch (mySvcPropertyDefinition.Multiplicity) { case ServicePropertyMultiplicity.Single: this.Multiplicity = PropertyMultiplicity.Single; break; case ServicePropertyMultiplicity.Set: this.Multiplicity = PropertyMultiplicity.Set; break; case ServicePropertyMultiplicity.List: this.Multiplicity = PropertyMultiplicity.List; break; } this._InIndices = mySvcPropertyDefinition.InIndices; this.DefaultValue = (IComparable)mySvcPropertyDefinition.DefaultValue; this.ID = mySvcPropertyDefinition.ID; this.Name = mySvcPropertyDefinition.Name; this.RelatedType = ConvertHelper.ToBaseType(mySvcPropertyDefinition.RelatedType, _ServiceToken); }
internal IVertexView ToVertexView(IServiceToken myServiceToken) { Dictionary <String, Object> properties = new Dictionary <string, object>(); Dictionary <String, IEdgeView> egdes = new Dictionary <string, IEdgeView>(); foreach (var item in this.Properties) { object value = ConvertHelper.ToDsObject(item.Item2, myServiceToken); if (value != null) { properties.Add(item.Item1, value); } else { properties.Add(item.Item1, item.Item2); } } foreach (var item in this.SingleEdges) { egdes.Add(item.Item1, item.Item2.ToSingleEdgeView(myServiceToken)); } foreach (var item in this.HyperEdges) { egdes.Add(item.Item1, item.Item2.ToHyperEdgeView(myServiceToken)); } return(new sones.GraphQL.Result.VertexView(properties, egdes)); }
internal RemoteVertex(ServiceVertexInstance myVertex, IServiceToken myServiceToken) : base(myServiceToken) { this._edition = myVertex.Edition; this._vertexID = myVertex.VertexID; this._vertexTypeID = myVertex.TypeID; this._vertexRevisionID = myVertex.VertexRevisionID; }
internal ISingleEdgeView ToSingleEdgeView(IServiceToken myServiceToken) { Dictionary<String, Object> properties = new Dictionary<string,object>(); foreach(var item in this.PropertyList) properties.Add(item.Item1, item.Item2); return new SingleEdgeView(properties, this.TargetVertex.ToVertexView(myServiceToken)); }
internal RemoteSingleEdge(ServiceSingleEdgeInstance mySvcEdgeInstance, IServiceToken myServiceToken) : base(mySvcEdgeInstance, myServiceToken) { _EdgeTypeID = mySvcEdgeInstance.TypeID; _EdgePropertyID = mySvcEdgeInstance.EdgePropertyID; _SourceVertex = new RemoteVertex(mySvcEdgeInstance.SourceVertex, _ServiceToken); _TargetVertex = new RemoteVertex(mySvcEdgeInstance.TargetVertex, _ServiceToken); }
internal RemoteIncomingEdgeDefinition(ServiceIncomingEdgeDefinition myIncomingEdgeDefinition, IServiceToken myServiceToken) { this.RelatedEdgeDefinition = new RemoteOutgoingEdgeDefinition(myIncomingEdgeDefinition.RelatedEdgeDefinition, myServiceToken); this.Name = myIncomingEdgeDefinition.Name; this.ID = myIncomingEdgeDefinition.ID; this.IsUserDefined = myIncomingEdgeDefinition.IsUserDefined; this.RelatedType = ConvertHelper.ToBaseType(myIncomingEdgeDefinition.RelatedType, myServiceToken); }
internal RemoteBinaryPropertyDefinition(ServiceBinaryPropertyDefinition myServiceBinaryPropertyDefinition, IServiceToken myServiceToken) { this._ServiceToken = myServiceToken; this.ID = myServiceBinaryPropertyDefinition.ID; this.Name = myServiceBinaryPropertyDefinition.Name; this.IsUserDefined = myServiceBinaryPropertyDefinition.IsUserDefined; this.RelatedType = ConvertHelper.ToBaseType(myServiceBinaryPropertyDefinition.RelatedType, myServiceToken); }
internal RemoteHyperEdge(ServiceHyperEdgeInstance mySvcEdge, IServiceToken myServiceToken) : base(mySvcEdge, myServiceToken) { ContainedSingleEdges = new HashSet <ISingleEdge>(); foreach (var item in mySvcEdge.SingleEdges) { ContainedSingleEdges.Add(new RemoteSingleEdge(item, myServiceToken)); } }
internal ARemoteBaseType(ServiceBaseType myServiceBaseType, IServiceToken myServiceToken) { _ServiceToken = myServiceToken; _ID = myServiceBaseType.ID; _Name = myServiceBaseType.Name; _Comment = myServiceBaseType.Comment; _IsUserDefined = myServiceBaseType.IsUserDefined; }
internal RemoteBinaryPropertyDefinition(ServiceBinaryPropertyDefinition myServiceBinaryPropertyDefinition, IServiceToken myServiceToken) { this._ServiceToken = myServiceToken; this.ID = myServiceBinaryPropertyDefinition.ID; this.Name = myServiceBinaryPropertyDefinition.Name; this.IsUserDefined = myServiceBinaryPropertyDefinition.IsUserDefined; this.RelatedType = ConvertHelper.ToBaseType(myServiceBinaryPropertyDefinition.RelatedType, myServiceToken); }
internal ISingleEdgeView ToSingleEdgeView(IServiceToken myServiceToken) { Dictionary <String, Object> properties = new Dictionary <string, object>(); foreach (var item in this.PropertyList) { properties.Add(item.Item1, item.Item2); } return(new SingleEdgeView(properties, this.TargetVertex.ToVertexView(myServiceToken))); }
internal IHyperEdgeView ToHyperEdgeView(IServiceToken myServiceToken) { Dictionary <String, Object> properties = new Dictionary <string, object>(); foreach (var item in this.PropertyList) { properties.Add(item.Item1, item.Item2); } return(new HyperEdgeView(properties, this.Edges.Select(x => x.ToSingleEdgeView(myServiceToken)))); }
internal static object ToDsObject(object mySvcObject, IServiceToken myServiceToken) { if (mySvcObject is ServicePropertyMultiplicity) return ToPropertyMultiplicity((ServicePropertyMultiplicity)mySvcObject); else if (mySvcObject is ServiceEdgeMultiplicity) return ToEdgeMultiplicity((ServiceEdgeMultiplicity)mySvcObject); else if (mySvcObject is ServiceIndexDefinition) return new RemoteIndexDefinition((ServiceIndexDefinition)mySvcObject, myServiceToken); else return null; }
internal RemoteOutgoingEdgeDefinition(ServiceOutgoingEdgeDefinition myOutgoingEdgeDefinition, IServiceToken myServiceToken) { this.EdgeType = new RemoteEdgeType(myOutgoingEdgeDefinition.EdgeType, myServiceToken); this.InnerEdgeType = new RemoteEdgeType(myOutgoingEdgeDefinition.InnerEdgeType, myServiceToken); this.Multiplicity = (EdgeMultiplicity)myOutgoingEdgeDefinition.Multiplicity; this.SourceVertexType = new RemoteVertexType(myOutgoingEdgeDefinition.SourceVertexType, myServiceToken); this.TargetVertexType = new RemoteVertexType(myOutgoingEdgeDefinition.TargetVertexType, myServiceToken); this.Name = myOutgoingEdgeDefinition.Name; this.ID = myOutgoingEdgeDefinition.ID; this.RelatedType = ConvertHelper.ToBaseType(myOutgoingEdgeDefinition.RelatedType, myServiceToken); this.IsUserDefined = myOutgoingEdgeDefinition.IsUserDefined; }
internal static IBaseType ToBaseType(ServiceBaseType myBaseType, IServiceToken myServiceToken) { IBaseType result = null; if (myBaseType is ServiceVertexType) { result = new RemoteVertexType((ServiceVertexType)myBaseType, myServiceToken); } else if (myBaseType is ServiceEdgeType) { result = new RemoteEdgeType((ServiceEdgeType)myBaseType, myServiceToken); } return result; }
internal RemoteIndexDefinition(ServiceIndexDefinition mySvcIndexDefinition, IServiceToken myServiceToken) { this._ServiceToken = myServiceToken; this.Name = mySvcIndexDefinition.Name; this.IndexTypeName = mySvcIndexDefinition.IndexTypeName; this.Edition = mySvcIndexDefinition.Edition; this.IsUserdefined = mySvcIndexDefinition.IsUserdefined; this._IndexedProperties = mySvcIndexDefinition.IndexedProperties.ToList(); this.VertexType = new RemoteVertexType(mySvcIndexDefinition.VertexType, myServiceToken); this.ID = mySvcIndexDefinition.ID; this.IsRange = mySvcIndexDefinition.IsRange; this.IsVersioned = mySvcIndexDefinition.IsVersioned; this.SourceIndex = (mySvcIndexDefinition.SourceIndex == null) ? null : new RemoteIndexDefinition(mySvcIndexDefinition.SourceIndex, myServiceToken); }
internal RemoteIndexDefinition(ServiceIndexDefinition mySvcIndexDefinition, IServiceToken myServiceToken) { this._ServiceToken = myServiceToken; this.Name = mySvcIndexDefinition.Name; this.IndexTypeName = mySvcIndexDefinition.IndexTypeName; this.Edition = mySvcIndexDefinition.Edition; this.IsUserdefined = mySvcIndexDefinition.IsUserdefined; this._IndexedProperties = mySvcIndexDefinition.IndexedProperties; this.VertexType = new RemoteVertexType(mySvcIndexDefinition.VertexType, myServiceToken); this.ID = mySvcIndexDefinition.ID; this.IsRange = mySvcIndexDefinition.IsRange; this.IsVersioned = mySvcIndexDefinition.IsVersioned; this.SourceIndex = (mySvcIndexDefinition.SourceIndex == null) ? null : new RemoteIndexDefinition(mySvcIndexDefinition.SourceIndex, myServiceToken); }
internal static IBaseType ToBaseType(ServiceBaseType myBaseType, IServiceToken myServiceToken) { IBaseType result = null; if (myBaseType is ServiceVertexType) { result = new RemoteVertexType((ServiceVertexType)myBaseType, myServiceToken); } else if (myBaseType is ServiceEdgeType) { result = new RemoteEdgeType((ServiceEdgeType)myBaseType, myServiceToken); } return(result); }
internal IVertexView ToVertexView(IServiceToken myServiceToken) { Dictionary<String, Object> properties = new Dictionary<string,object>(); Dictionary<String, IEdgeView> egdes = new Dictionary<string,IEdgeView>(); foreach (var item in this.Properties) { object value = ConvertHelper.ToDsObject(item.Item2, myServiceToken); if (value != null) properties.Add(item.Item1, value); else properties.Add(item.Item1, item.Item2); } foreach(var item in this.SingleEdges) egdes.Add(item.Item1, item.Item2.ToSingleEdgeView(myServiceToken)); foreach(var item in this.HyperEdges) egdes.Add(item.Item1, item.Item2.ToHyperEdgeView(myServiceToken)); return new sones.GraphQL.Result.VertexView(properties, egdes); }
internal static object ToDsObject(object mySvcObject, IServiceToken myServiceToken) { if (mySvcObject is ServicePropertyMultiplicity) { return(ToPropertyMultiplicity((ServicePropertyMultiplicity)mySvcObject)); } else if (mySvcObject is ServiceEdgeMultiplicity) { return(ToEdgeMultiplicity((ServiceEdgeMultiplicity)mySvcObject)); } else if (mySvcObject is ServiceIndexDefinition) { return(new RemoteIndexDefinition((ServiceIndexDefinition)mySvcObject, myServiceToken)); } else { return(null); } }
internal static IAttributeDefinition ToAttributeDefinition(ServiceAttributeDefinition mySvcAttributeDefinition, IServiceToken myServiceToken) { IAttributeDefinition AttributeDefinition = null; switch(mySvcAttributeDefinition.Kind) { case ServiceAttributeType.Property: AttributeDefinition = new RemotePropertyDefinition((ServicePropertyDefinition)mySvcAttributeDefinition, myServiceToken); break; case ServiceAttributeType.BinaryProperty: throw new NotImplementedException(); case ServiceAttributeType.IncomingEdge: AttributeDefinition = new RemoteIncomingEdgeDefinition((ServiceIncomingEdgeDefinition)mySvcAttributeDefinition, myServiceToken); break; case ServiceAttributeType.OutgoingEdge: AttributeDefinition = new RemoteOutgoingEdgeDefinition((ServiceOutgoingEdgeDefinition)mySvcAttributeDefinition, myServiceToken); break; } return AttributeDefinition; }
internal IQueryResult ToQueryResult(IServiceToken myServiceToken) { ResultType type; if (this.TypeOfResult == ServiceResultType.Successful) { type = ResultType.Successful; } else { type = ResultType.Failed; } if (!String.IsNullOrEmpty(this.Error)) { return new QueryResult(this.Query, this.NameOfQueryLanguage, this.Duration, type, this.Vertices.Select(x => x.ToVertexView(myServiceToken)), new RemoteException(this.Error)); } else { return new QueryResult(this.Query, this.NameOfQueryLanguage, this.Duration, type, this.Vertices.Select(x => x.ToVertexView(myServiceToken)), null); } }
/// <summary> /// 刷新JS SDK令牌。 /// </summary> /// <returns>返回JS SDK令牌。</returns> public virtual async Task <IServiceToken> RefreshJavascriptToken() { await CheckServiceToken(); string remoteToken = ServiceToken.Token; string result = await HttpHelper.GetHttp(JavascriptTokenUrl, new { access_token = remoteToken, type = "jsapi" }); HandleJsonError(result); var item = new JavascriptToken(); var doc = JsonConvert.DeserializeXNode(result, "xml").Element("xml"); item.Token = doc.Element("ticket").Value; item.ExpiredDate = DateTime.Now.AddSeconds(int.Parse(doc.Element("expires_in").Value)).AddMinutes(-1); JavascriptToken = item; return(item); }
internal IQueryResult ToQueryResult(IServiceToken myServiceToken) { ResultType type; if (this.TypeOfResult == ServiceResultType.Successful) { type = ResultType.Successful; } else { type = ResultType.Failed; } if (!String.IsNullOrEmpty(this.Error)) { return(new QueryResult(this.Query, this.NameOfQueryLanguage, this.Duration, type, this.Vertices.Select(x => x.ToVertexView(myServiceToken)), new RemoteException(this.Error))); } else { return(new QueryResult(this.Query, this.NameOfQueryLanguage, this.Duration, type, this.Vertices.Select(x => x.ToVertexView(myServiceToken)), null)); } }
internal static IAttributeDefinition ToAttributeDefinition(ServiceAttributeDefinition mySvcAttributeDefinition, IServiceToken myServiceToken) { IAttributeDefinition AttributeDefinition = null; if (mySvcAttributeDefinition != null) { switch (mySvcAttributeDefinition.Kind) { case ServiceAttributeType.Property: AttributeDefinition = new RemotePropertyDefinition((ServicePropertyDefinition)mySvcAttributeDefinition, myServiceToken); break; case ServiceAttributeType.BinaryProperty: throw new NotImplementedException(); case ServiceAttributeType.IncomingEdge: AttributeDefinition = new RemoteIncomingEdgeDefinition((ServiceIncomingEdgeDefinition)mySvcAttributeDefinition, myServiceToken); break; case ServiceAttributeType.OutgoingEdge: AttributeDefinition = new RemoteOutgoingEdgeDefinition((ServiceOutgoingEdgeDefinition)mySvcAttributeDefinition, myServiceToken); break; } } return(AttributeDefinition); }
internal ARemoteGraphElement(IServiceToken myServiceToken) { _ServiceToken = myServiceToken; }
internal RemoteEdgeType(ServiceEdgeType myServiceEdgeType, IServiceToken myServiceToken) : base(myServiceEdgeType, myServiceToken) { }
internal RemoteUniqueDefinition(ServiceUniqueDefinition myUniqueDefinition, IServiceToken myServiceToken) { this.UniquePropertyDefinitions = myUniqueDefinition.UniquePropertyDefinition.Select(x => new RemotePropertyDefinition(x, myServiceToken)); this.DefiningVertexType = new RemoteVertexType(myUniqueDefinition.DefiningVertexType, myServiceToken); this.CorrespondingIndex = new RemoteIndexDefinition(myUniqueDefinition.CorrespondingIndex, myServiceToken); }
private byte[] EncryptServiceToken(IServiceToken serviceToken, byte[] sessionKey, User user) { byte[] iv = this.GenerateIV(user.PasswordHash, user.PasswordSalt); return this.Encrypt(sessionKey, iv, serviceToken); }
internal RemoteUniqueDefinition(ServiceUniqueDefinition myUniqueDefinition, IServiceToken myServiceToken) { this.UniquePropertyDefinitions = myUniqueDefinition.UniquePropertyDefinition.Select(x => (IPropertyDefinition) new RemotePropertyDefinition(x, myServiceToken)); this.DefiningVertexType = new RemoteVertexType(myUniqueDefinition.DefiningVertexType, myServiceToken); this.CorrespondingIndex = new RemoteIndexDefinition(myUniqueDefinition.CorrespondingIndex, myServiceToken); }
internal ARemoteGraphElement(IServiceToken myServiceToken) { _ServiceToken = myServiceToken; }
internal RemoteVertexType(ServiceVertexType myVertexType, IServiceToken myServiceToken) : base(myVertexType, myServiceToken) { _IsAbstract = myVertexType.IsAbstract; }
internal RemoteIncomingEdgeDefinition(ServiceIncomingEdgeDefinition myIncomingEdgeDefinition, IServiceToken myServiceToken) { this.RelatedEdgeDefinition = new RemoteOutgoingEdgeDefinition(myIncomingEdgeDefinition.RelatedEdgeDefinition, myServiceToken); this.Name = myIncomingEdgeDefinition.Name; this.ID = myIncomingEdgeDefinition.ID; this.IsUserDefined = myIncomingEdgeDefinition.IsUserDefined; this.RelatedType = ConvertHelper.ToBaseType(myIncomingEdgeDefinition.RelatedType, myServiceToken); }
internal ISingleEdgeView ToSingleEdgeView(IServiceToken myServiceToken) { Dictionary <String, Object> properties = PropertyList; return(new SingleEdgeView(properties, this.TargetVertex.ToVertexView(myServiceToken))); }
internal IHyperEdgeView ToHyperEdgeView(IServiceToken myServiceToken) { return new HyperEdgeView(this.PropertyList, this.Edges.Select(x => x.ToSingleEdgeView(myServiceToken))); }
internal RemoteEdgeType(ServiceEdgeType myServiceEdgeType, IServiceToken myServiceToken) : base(myServiceEdgeType, myServiceToken) { }
internal ARemoteEdge(ServiceEdgeInstance myEdge, IServiceToken myServiceToken) : base(myServiceToken) { _EdgeTypeID = myEdge.TypeID; _SourceVertex = new RemoteVertex(myEdge.SourceVertex, myServiceToken); }
internal ISingleEdgeView ToSingleEdgeView(IServiceToken myServiceToken) { Dictionary<String, Object> properties = PropertyList; return new SingleEdgeView(properties, this.TargetVertex.ToVertexView(myServiceToken)); }
internal IHyperEdgeView ToHyperEdgeView(IServiceToken myServiceToken) { return(new HyperEdgeView(this.PropertyList, this.Edges.Select(x => x.ToSingleEdgeView(myServiceToken)))); }
internal RemoteVertexType(ServiceVertexType myVertexType, IServiceToken myServiceToken) : base(myVertexType, myServiceToken) { _IsAbstract = myVertexType.IsAbstract; }
internal RemoteOutgoingEdgeDefinition(ServiceOutgoingEdgeDefinition myOutgoingEdgeDefinition, IServiceToken myServiceToken) { this.EdgeType = new RemoteEdgeType(myOutgoingEdgeDefinition.EdgeType, myServiceToken); this.InnerEdgeType = (myOutgoingEdgeDefinition.InnerEdgeType == null) ? null : new RemoteEdgeType(myOutgoingEdgeDefinition.InnerEdgeType, myServiceToken); this.Multiplicity = ConvertHelper.ToEdgeMultiplicity(myOutgoingEdgeDefinition.Multiplicity); this.SourceVertexType = new RemoteVertexType(myOutgoingEdgeDefinition.SourceVertexType, myServiceToken); this.TargetVertexType = new RemoteVertexType(myOutgoingEdgeDefinition.TargetVertexType, myServiceToken); this.Name = myOutgoingEdgeDefinition.Name; this.ID = myOutgoingEdgeDefinition.ID; this.RelatedType = ConvertHelper.ToBaseType(myOutgoingEdgeDefinition.RelatedType, myServiceToken); this.IsUserDefined = myOutgoingEdgeDefinition.IsUserDefined; }