private void LoadFromFile(string file) { var res = JsonConvert.DeserializeObject <dynamic>(File.ReadAllText(file)); var allnodes = new Dictionary <string, NodeSchema>(); foreach (var n in res.Nodes) { var nodeName = n.Name.ToString(); var nodeDef = new NodeSchema() { Name = nodeName, Properties = (n.Properties?.ToObject <List <dynamic> >() as List <dynamic> ?? Enumerable.Empty <dynamic>()) .Select(s => (new EntityProperty() { PropertyName = s.PropertyName.ToString(), DataType = Type.GetType(s.PropertyType.ToString()), PropertyType = EntityProperty.PropertyDefinitionType.RegularProperty })).ToList(), NodeIdProperty = new EntityProperty() { PropertyName = n.IdProperty.PropertyName.ToString(), DataType = Type.GetType(n.IdProperty.PropertyType.ToString()), PropertyType = EntityProperty.PropertyDefinitionType.NodeJoinKey }, }; allnodes.Add(nodeName, nodeDef); } _allNodeDefinions = allnodes.Values.ToList(); _allEdgeDefinions = new List <EdgeSchema>(); foreach (var e in res.Edges) { _allEdgeDefinions.Add(new EdgeSchema() { Name = e.Name.ToString(), SourceNodeId = e.FromNode.ToString(), SinkNodeId = e.ToNode.ToString(), Properties = (e.Properties?.ToObject <List <dynamic> >() as List <dynamic> ?? Enumerable.Empty <dynamic>()) .Select(s => (new EntityProperty() { PropertyName = s.PropertyName.ToString(), DataType = Type.GetType(s.PropertyType.ToString()), PropertyType = EntityProperty.PropertyDefinitionType.RegularProperty })).ToList(), SourceIdProperty = new EntityProperty() { PropertyName = e.SourceIdProperty.PropertyName.ToString(), DataType = Type.GetType(e.SourceIdProperty.PropertyType.ToString()), PropertyType = EntityProperty.PropertyDefinitionType.NodeJoinKey }, SinkIdProperty = new EntityProperty() { PropertyName = e.SinkIdProperty.PropertyName.ToString(), DataType = Type.GetType(e.SinkIdProperty.PropertyType.ToString()), PropertyType = EntityProperty.PropertyDefinitionType.NodeJoinKey }, }); } }
public void Node_Create_Person() { NodeSchema n = new NodeSchema(name: "person"); n.Attributes.Add(new Attribute(name: "FirstName", type: new AttributeText())); n.Attributes.Add(new Attribute(name: "LastName", type: new AttributeText())); n.Attributes.Add(new Attribute(name: "DateOfBirth", new AttributeDatum())); n.Edges.Add(new EdgeSchema(name: "likes")); n.Edges.Add(new EdgeSchema(name: "married")); n.Edges.Add(new EdgeSchema(name: "friend")); n.Edges[0].Constraints.Add(new Constraint(name: "person")); n.Edges[1].Constraints.Add(new Constraint(name: "person")); n.Edges[2].Constraints.Add(new Constraint(name: "person")); n.Edges[0].Attributes.Add(new Attribute(name: "rating", type: new AttributeEuro())); //object p1 = from p in n select p; NodeSchemaScript script = new NodeSchemaScript(); var serializer = new SerializerBuilder().Build(); var sw = new StringWriter(); serializer.Serialize(sw, n); var yaml = sw.ToString(); var deserializer = new DeserializerBuilder().IgnoreUnmatchedProperties().Build(); var r = deserializer.Deserialize <NodeSchema>(yaml); var sql = script.CreateScript(n); }
public string Serialize(NodeSchema schema) { var serializer = new SerializerBuilder().Build(); var sw = new StringWriter(); serializer.Serialize(sw, schema); return(sw.ToString()); }
public string CreateCode <T>(NodeSchema schema, string nameSpace) where T : IGraphEntity { if (typeof(T) == typeof(IGraphEntity)) { throw new Exception("Please specify an interface that inherits from IGraphEntity"); } StringBuilder sb = new StringBuilder(); sb.AppendLine($@"// ----------------------------------------------------------------- // Automatically generated with Virtual Society Graph Code Generator // Please do not modify this file // Generation date: {DateTime.Now} // -----------------------------------------------------------------"); sb.AppendLine("using System;"); sb.AppendLine("using Itenso.TimePeriod;"); sb.AppendLine("using Vs.Graph.Core.Data;"); sb.AppendLine($"namespace {nameSpace}"); sb.AppendLine("{"); sb.AppendLine($"\tpartial class {schema.Name.ToPascalCase()} : {typeof(T).Name}"); sb.AppendLine("\t{"); foreach (var attribute in schema.Attributes) { // Resolve AttributeType from types that inherit from IAttributeType switch (((AttributeTypeAttribute)attribute.Type.GetType().GetCustomAttributes(typeof(AttributeTypeAttribute), true)[0]).Name) { case "int": sb.AppendLine($"\t\tpublic int {attribute.Name.ToPascalCase()} {{get;set;}}"); break; case "datum": sb.AppendLine($"\t\tpublic DateTime {attribute.Name.ToPascalCase()} {{get;set;}}"); break; case "elfproef": sb.AppendLine($"\t\tpublic string {attribute.Name.ToPascalCase()} {{get;set;}}"); break; case "euro": sb.AppendLine($"\t\tpublic double {attribute.Name.ToPascalCase()} {{get;set;}}"); break; case "periode": sb.AppendLine($"\t\tpublic TimeRange {attribute.Name.ToPascalCase()} {{get;set;}}"); break; case "text": sb.AppendLine($"\t\tpublic string {attribute.Name.ToPascalCase()} {{get;set;}}"); break; default: throw new AttributeNotSupportedException(); } } sb.AppendLine("\t}"); sb.AppendLine("}"); return(sb.ToString()); }
public void Node_Create_Person() { NodeSchema n = new NodeSchema(name: "person"); n.Attributes.Add(new Attribute(name: "FirstName", type: new AttributeText())); n.Attributes.Add(new Attribute(name: "LastName", type: new AttributeText())); n.Attributes.Add(new Attribute(name: "DateOfBirth", new AttributeDatum())); n.Edges.Add(new EdgeSchema(name: "likes")); n.Edges.Add(new EdgeSchema(name: "married")); n.Edges.Add(new EdgeSchema(name: "friend")); n.Edges[0].Constraints.Add(new Constraint(name: "person")); n.Edges[1].Constraints.Add(new Constraint(name: "person")); n.Edges[2].Constraints.Add(new Constraint(name: "person")); n.Edges[0].Attributes.Add(new Attribute(name: "rating", type: new AttributeEuro())); SchemaController controller = new SchemaController(new MsSqlGraphSchemaService()); var yaml = controller.Serialize(n); var r = controller.Deserialize(yaml); var sql = controller.Service.CreateScript(r); Assert.True(sql == @"CREATE TABLE node.person ( ID INTEGER PRIMARY KEY, FirstName NTEXT,LastName NTEXT,DateOfBirth DATETIME, ) AS NODE; CREATE TABLE edge.likes ( rating DECIMAL,CONSTRAINT EC_LIKES CONNECTION ( node.person TO node.person ) ) AS EDGE; CREATE TABLE edge.married ( CONSTRAINT EC_MARRIED CONNECTION ( node.person TO node.person ) ) AS EDGE; CREATE TABLE edge.friend ( CONSTRAINT EC_FRIEND CONNECTION ( node.person TO node.person ) ) AS EDGE; "); }
public string CreateMigrationScript(string migrationUrn) { StringBuilder sb = new StringBuilder(); SchemaController controller = new SchemaController(_graphSchemaService); var files = _schemaPackageStorageService.GetFiles(migrationUrn); var f = (from p in files where p.Key.EndsWith("schema-package.yaml") select p).SingleOrDefault(); if (string.IsNullOrEmpty(f.Value)) { throw new Exception($"schema-package.yaml was not found at migration urn. {migrationUrn}"); } // get sequence of schemas from package to be converted. var sequence = controller.SchemaSequence(f.Value); NodeSchema nodeSchema = null; foreach (var nodeSequence in sequence.Schemas) { var schemaFile = (from p in files where p.Key.EndsWith($"{nodeSequence.Name}.yaml") select p).SingleOrDefault(); if (string.IsNullOrEmpty(schemaFile.Value)) { throw new Exception($"{nodeSequence.Name}.yaml wat not found at migration urn {migrationUrn}"); } try { nodeSchema = controller.Deserialize(schemaFile.Value); } catch (Exception ex) { throw new Exception($"can't deserialize schema ${schemaFile.Key}", ex); } sb.AppendLine(_graphSchemaService.CreateScript(nodeSchema)); } return(sb.ToString()); }
private void GenerateDocument() { DataSet data = parseXML(file); string eConnectConnectionString = string.Format("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog={1};Data Source={0};", this.server, this.db); string DOCID = GPHelper.InvoiceDOCID(this.StringConnection).Trim(); //Now we create the eConnect XML Document XmlDocument eConnectXMLDocument = new XmlDocument(); XmlNode NodeeConnect; XmlNode NodeSchema; XmlNode taSopHdrNode; XmlNode taSopLine_ItemsNode; XmlNode taSopLineNode; XmlNode taCreateSopPaymentInsertRecord_Items; XmlNode taCreateSopPaymentInsertRecord; XmlNode NodeElement; if (data.Tables["HEADER"].Rows.Count > 0 && data.Tables["LINES"].Rows.Count > 0) { DataRow header = data.Tables["HEADER"].Rows[0]; if (header["DOCID"].ToString().Length <= 0) { DOCID = GPHelper.returnDOCID(this.StringConnection).Trim(); } else { DOCID = header["DOCID"].ToString(); } if (header["DOCNUMBE"].ToString() == "") { IEvent w = new WarningEvent("", "", "El documento no posee código, se intentará generar uno para proceder con el mismo."); w.Publish(); header["DOCNUMBE"] = ""; } NodeeConnect = eConnectXMLDocument.CreateElement("eConnect"); NodeSchema = eConnectXMLDocument.CreateElement("SOPTransactionType"); //Header taSopHdrNode = eConnectXMLDocument.CreateElement("taSopHdrIvcInsert"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "3"; // INVOICE taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCID"); NodeElement.InnerText = DOCID; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFPRICING"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CREATETAXES"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFTAXSCHDS"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("BACHNUMB"); NodeElement.InnerText = DOCID + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ORIGNUMB"); NodeElement.InnerText = header["ORIGNUMB"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ORIGTYPE"); NodeElement.InnerText = header["ORIGTYPE"].ToString(); taSopHdrNode.AppendChild(NodeElement); if (header["TAXSCHID"].ToString().Length <= 0) { NodeElement = eConnectXMLDocument.CreateElement("TAXSCHID"); NodeElement.InnerText = this.ITBMS; taSopHdrNode.AppendChild(NodeElement); } else { NodeElement = eConnectXMLDocument.CreateElement("TAXSCHID"); NodeElement.InnerText = header["TAXSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); } NodeElement = eConnectXMLDocument.CreateElement("FRTSCHID"); NodeElement.InnerText = header["FRTSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("MSCSCHID"); NodeElement.InnerText = header["MSCSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SHIPMTHD"); NodeElement.InnerText = header["SHIPMTHD"].ToString(); taSopHdrNode.AppendChild(NodeElement); //if ((Decimal)header["TAXAMNT"] > 0) //{ // NodeElement = eConnectXMLDocument.CreateElement("TAXAMNT"); // NodeElement.InnerText = header["TAXAMNT"].ToString(); // taSopHdrNode.AppendChild(NodeElement); //} NodeElement = eConnectXMLDocument.CreateElement("LOCNCODE"); NodeElement.InnerText = header["LOCNCODE"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(header["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("FREIGHT"); NodeElement.InnerText = header["FREIGHT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("MISCAMNT"); NodeElement.InnerText = header["MISCAMNT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("TRDISAMT"); NodeElement.InnerText = header["TRDISAMT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CSTPONBR"); NodeElement.InnerText = header["CSTPONBR"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SUBTOTAL"); NodeElement.InnerText = header["SUBTOTAL"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCAMNT"); NodeElement.InnerText = header["DOCAMNT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SALSTERR"); NodeElement.InnerText = header["SALSTERR"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SLPRSNID"); NodeElement.InnerText = header["SLPRSNID"].ToString(); taSopHdrNode.AppendChild(NodeElement); #region Lines // Details taSopLine_ItemsNode = eConnectXMLDocument.CreateElement("taSopLineIvcInsert_Items"); foreach (DataRow item in data.Tables["LINES"].Rows) { taSopLineNode = eConnectXMLDocument.CreateElement("taSopLineIvcInsert"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "3"; //return taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFPRICING"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(header["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("LOCNCODE"); NodeElement.InnerText = item["LOCNCODE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ITEMNMBR"); NodeElement.InnerText = item["ITEMNMBR"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("UNITPRCE"); NodeElement.InnerText = item["UNITPRCE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("XTNDPRCE"); NodeElement.InnerText = item["XTNDPRCE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("QUANTITY"); NodeElement.InnerText = item["QUANTITY"].ToString(); taSopLineNode.AppendChild(NodeElement); //NodeElement = eConnectXMLDocument.CreateElement("QTYONHND"); //NodeElement.InnerText = item["QUANTITY"].ToString(); //taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("MRKDNAMT"); NodeElement.InnerText = item["MRKDNAMT"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("UOFM"); NodeElement.InnerText = item["UOFM"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF1"); NodeElement.InnerText = item["USERDEF1"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF2"); NodeElement.InnerText = item["USERDEF2"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF3"); NodeElement.InnerText = item["USERDEF3"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF4"); NodeElement.InnerText = item["USERDEF4"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF5"); NodeElement.InnerText = item["USERDEF5"].ToString(); taSopLineNode.AppendChild(NodeElement); taSopLine_ItemsNode.AppendChild(taSopLineNode); } #endregion // Payments // Details Decimal totalPaid = 0; taCreateSopPaymentInsertRecord_Items = eConnectXMLDocument.CreateElement("taCreateSopPaymentInsertRecord_Items"); foreach (DataRow item in data.Tables["PAYMENTS"].Rows) { taCreateSopPaymentInsertRecord = eConnectXMLDocument.CreateElement("taCreateSopPaymentInsertRecord"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "3"; //return taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(item["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCAMNT"); NodeElement.InnerText = item["DOCAMNT"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); totalPaid += (Decimal)item["DOCAMNT"]; NodeElement = eConnectXMLDocument.CreateElement("CHEKBKID"); NodeElement.InnerText = item["CHEKBKID"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CARDNAME"); NodeElement.InnerText = item["CARDNAME"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CHEKNMBR"); NodeElement.InnerText = item["CHEKNMBR"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("RCTNCCRD"); NodeElement.InnerText = item["RCTNCCRD"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); //NodeElement = eConnectXMLDocument.CreateElement("QTYONHND"); //NodeElement.InnerText = item["QUANTITY"].ToString(); //taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("AUTHCODE"); NodeElement.InnerText = item["AUTHCODE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("EXPNDATE"); NodeElement.InnerText = ((DateTime)item["EXPNDATE"]).ToString("yyyy-MM-dd"); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("PYMTTYPE"); NodeElement.InnerText = item["PYMTTYPE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCNUMBR"); NodeElement.InnerText = item["DOCNUMBR"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USRDEFND1"); NodeElement.InnerText = item["USERDEF1"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF2"); NodeElement.InnerText = item["USERDEF2"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF3"); NodeElement.InnerText = item["USERDEF3"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF4"); NodeElement.InnerText = item["USERDEF4"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF5"); NodeElement.InnerText = item["USERDEF5"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); taCreateSopPaymentInsertRecord_Items.AppendChild(taCreateSopPaymentInsertRecord); } NodeElement = eConnectXMLDocument.CreateElement("PYMTRCVD"); NodeElement.InnerText = totalPaid.ToString().Replace(",", ".").Replace(".", "."); taSopHdrNode.AppendChild(NodeElement); NodeSchema.AppendChild(taSopLine_ItemsNode); NodeSchema.AppendChild(taCreateSopPaymentInsertRecord_Items); NodeSchema.AppendChild(taSopHdrNode); // Document NodeeConnect.AppendChild(NodeSchema); eConnectXMLDocument.AppendChild(NodeeConnect); //Dim eConnectXMLDocString As String = eConnectXMLDocument.OuterXml; //MsgBox(eConnectXMLDocString) if (!GPHelper.eConnectSendToGP(eConnectXMLDocument.OuterXml, eConnectConnectionString)) { ((IEvent)(new ErrorEvent("", "", "Se detectó un error en la transacción e connect, se procederá con el rollback de la transación."))).Publish(); if (File.Exists(this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", ""))) { File.Delete(this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", "")); } File.Move(this.file, this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", "")); } else { ((IEvent)(new InfoEvent("", "", "La transacción culminó satisfactoriamente."))).Publish(); if (File.Exists(this.HistPathIn + "\\OK_" + this.fname.Replace("\\", ""))) { File.Delete(this.HistPathIn + "\\OK_" + this.fname.Replace("\\", "")); } File.Move(this.file, this.HistPathIn + "\\OK_" + this.fname.Replace("\\", "")); /* FALTA AHCER LA CONSULTA PARA AÑADIR LA INFORMACIÓN FISCAL */ GPHelper.insertFiscalInfo(header["DOCNUMBE"].ToString(), header["COO"].ToString(), header["DATEGEN"].ToString(), header["SERIALPRINTER"].ToString(), StringConnection); /* FALTA AHCER LA CONSULTA PARA AÑADIR LA INFORMACIÓN FISCAL */ } } }
public string CreateScript(NodeSchema nodeSchema) { NodeSchemaScript script = new NodeSchemaScript(); return(script.CreateScript(nodeSchema)); }
/// <summary> /// This function bind the data source to a given graph definitions /// </summary> /// <param name="graphDefinition"></param> public void Bind(IGraphSchemaProvider graphDefinition) { // During binding, we read graph definition of the entity // and populate the EntityField object in the output // with the list of fields that the node/edge definition can expose var properties = new List <ValueField>(); string entityUniqueName; string sourceEntityName = null; string sinkEntityName = null; ValueField nodeIdField = null; ValueField edgeSrcIdField = null; ValueField edgeSinkIdField = null; try { if (Entity is NodeEntity) { NodeSchema nodeDef = graphDefinition.GetNodeDefinition(Entity.EntityName); entityUniqueName = nodeDef.Id; nodeIdField = new ValueField(nodeDef.NodeIdProperty.PropertyName, nodeDef.NodeIdProperty.DataType); properties.AddRange(nodeDef.Properties.Select(p => new ValueField(p.PropertyName, p.DataType))); properties.Add(nodeIdField); } else { var edgeEnt = Entity as RelationshipEntity; EdgeSchema edgeDef = null; switch (edgeEnt.RelationshipDirection) { case RelationshipEntity.Direction.Forward: edgeDef = graphDefinition.GetEdgeDefinition(edgeEnt.EntityName, edgeEnt.LeftEntityName, edgeEnt.RightEntityName); break; case RelationshipEntity.Direction.Backward: edgeDef = graphDefinition.GetEdgeDefinition(edgeEnt.EntityName, edgeEnt.RightEntityName, edgeEnt.LeftEntityName); break; default: // either direction // TODO: we don't handle 'both' direction yet Debug.Assert(edgeEnt.RelationshipDirection == RelationshipEntity.Direction.Both); edgeDef = graphDefinition.GetEdgeDefinition(edgeEnt.EntityName, edgeEnt.LeftEntityName, edgeEnt.RightEntityName); if (edgeDef == null) { edgeDef = graphDefinition.GetEdgeDefinition(edgeEnt.EntityName, edgeEnt.RightEntityName, edgeEnt.LeftEntityName); } break; } entityUniqueName = edgeDef.Id; sourceEntityName = edgeDef.SourceNodeId; sinkEntityName = edgeDef.SinkNodeId; edgeSrcIdField = new ValueField(edgeDef.SourceIdProperty.PropertyName, edgeDef.SourceIdProperty.DataType); edgeSinkIdField = new ValueField(edgeDef.SinkIdProperty.PropertyName, edgeDef.SinkIdProperty.DataType); properties.AddRange(edgeDef.Properties.Select(p => new ValueField(p.PropertyName, p.DataType))); properties.Add(edgeSrcIdField); properties.Add(edgeSinkIdField); } } catch (KeyNotFoundException e) { throw new TranspilerBindingException($"Failed to binding entity with alias '{Entity.Alias}' of type '{Entity.EntityName}' to graph definition. Inner error: {e.GetType().Name}: {e.Message}"); } Debug.Assert(OutputSchema.Count == 1 && OutputSchema.First() is EntityField && (OutputSchema.First() as EntityField).EntityName == Entity.EntityName); var field = OutputSchema.First() as EntityField; field.BoundEntityName = entityUniqueName; field.BoundSourceEntityName = sourceEntityName; field.BoundSinkEntityName = sinkEntityName; field.EncapsulatedFields = properties; field.NodeJoinField = nodeIdField; field.RelSourceJoinField = edgeSrcIdField; field.RelSinkJoinField = edgeSinkIdField; }