public MapChange(long transactionId, Guid mapParameter, Node node, TransactionType operation) { TransactionId = transactionId; MapParameter = mapParameter; Node = node; Operation = operation; }
protected SqlCommand UpdateNodeCommand(SqlConnection connection, Node node) { SqlCommand updateNodeCommand = new SqlCommand(); updateNodeCommand.CommandText = "UPDATE [Nodes] SET [NodeTypeUid] = @NodeTypeUid, [Modified] = @Modified, [ModifiedBy] = @ModifiedBy WHERE [DomainUid] = @DomainUid AND [NodeUid] = @NodeUid"; updateNodeCommand.Connection = connection; updateNodeCommand.Parameters.AddWithValue("@DomainUid", node.DomainUid); updateNodeCommand.Parameters.AddWithValue("@NodeUid", node.NodeUid); updateNodeCommand.Parameters.AddWithValue("@NodeTypeUid", node.NodeTypeUid); if (node.Modified == null) { updateNodeCommand.Parameters.AddWithValue("@Modified", DBNull.Value); } else { updateNodeCommand.Parameters.AddWithValue("@Modified", node.Modified); } if (node.ModifiedBy == null) { updateNodeCommand.Parameters.AddWithValue("@ModifiedBy", DBNull.Value); } else { updateNodeCommand.Parameters.AddWithValue("@ModifiedBy", node.ModifiedBy); } return updateNodeCommand; }
public Node NodeCreate(Domain newDomain, Guid nodeTypeId) { Guid newNodeId; Node newNode = new Node(); SqlCommand createNodeCommand = CreateNodeCommand(out newNodeId, nodeTypeUid: nodeTypeId, domainUid: newDomain.DomainUid); createNodeCommand.Parameters.AddWithValue("@NodeOriginalId", newNodeId.ToString()); createNodeCommand.ExecuteNonQuery(); newNode.NodeUid = newNodeId; newNode.NodeOriginalId = newNodeId.ToString(); newNode.NodeTypeUid = nodeTypeId; newNode.DomainUid = newDomain.DomainUid; return newNode; }
public Node DomainGetRootNode(Domain domain) { Node domainNode = new Node(); SqlCommand selectDomainNodeCommand = SelectDomainNodeCommand(domain.DomainUid); SqlDataReader reader = selectDomainNodeCommand.ExecuteReader(); if (reader.Read()) { domainNode.NodeUid = (Guid)reader["NodeUid"]; domainNode.NodeOriginalId = (string)reader["NodeOriginalId"]; domainNode.NodeTypeUid = (Guid)reader["NodeTypeUid"]; domainNode.DomainUid = (Guid)reader["DomainUid"]; } return domainNode; }
public void ExecuteTransaction(IDbConnectionAbstraction connectionAbstraction, MapTransactionWrapper transactionWrapper, ref MapResponse response) { IMapTransaction transaction = (IMapTransaction)transactionWrapper; SqlCommand command = SelectDeleteNodeRelationshipsDescriptorsMetadataCommand(connectionAbstraction.Connection, transactionWrapper.NodeParameter.Value); connectionAbstraction.Open(); SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { Node deletedNode = new Node(); deletedNode.LoadElement(reader); response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedNode, TransactionType.DeleteNode)); if (reader.NextResult()) { while (reader.Read()) { Metadata deletedMetadata = new Metadata(); deletedMetadata.LoadElement(reader); response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedMetadata, TransactionType.DeleteMetadata)); } } if (reader.NextResult()) { while (reader.Read()) { Relationship deletedRelationship = new Relationship(); deletedRelationship.LoadElement(reader); response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedRelationship, TransactionType.DeleteRelationship)); } } transactionWrapper.ResponseParameter.Value = deletedNode.NodeUid; } connectionAbstraction.Close(); }
public void ExecuteTransaction(IDbConnectionAbstraction connectionAbstraction, MapTransactionWrapper transactionWrapper, ref MapResponse response) { IMapTransaction transaction = (IMapTransaction)transactionWrapper; DateTime currentTime = DateTime.Now; Node updatedNode = new Node(); updatedNode.DomainUid = transactionWrapper.DomainParameter.Value; updatedNode.NodeUid = transactionWrapper.NodeParameter.Value; updatedNode.NodeTypeUid = transaction.NodeTypeUid.Value; updatedNode.Modified = currentTime; updatedNode.ModifiedBy = transaction.User; SqlCommand updateNodeCommand = UpdateNodeCommand(connectionAbstraction.Connection, updatedNode); connectionAbstraction.Open(); updateNodeCommand.ExecuteNonQuery(); connectionAbstraction.Close(); response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, updatedNode, TransactionType.UpdateNode)); transactionWrapper.ResponseParameter.Value = updatedNode.NodeUid; }
public void AddNode(Node node) { if (!Nodes.ContainsKey(node.NodeUid)) { Nodes.Add(node.NodeUid, node); } }
public MapChange(long transactionId, Node node, TransactionType operation) { TransactionId = transactionId; Node = node; Operation = operation; }