// ----------------------------------------------------- // Delete Document/ Folder node // ----------------------------------------------------- public static void DeleteDocumentTreeNode(int documentSetUID, TreeNode documentSetNode) { if (documentSetNode == null) { return; } if (documentSetUID <= 0) { return; } foreach (TreeNode documentAsNode in documentSetNode.Nodes) { Model.ModelDocument.Document doc = (Model.ModelDocument.Document)documentAsNode.Tag; DocumentSetDocument.Delete(DocumentSetUID: documentSetUID, DocumentUID: doc.UID); if (documentAsNode.Nodes.Count > 0) { foreach (TreeNode tn in documentAsNode.Nodes) { DeleteDocumentTreeNode(documentSetUID: documentSetUID, documentSetNode: tn); } } } Model.ModelDocument.Document doc2 = (Model.ModelDocument.Document)documentSetNode.Tag; DocumentSetDocument.Delete(DocumentSetUID: documentSetUID, DocumentUID: doc2.UID); return; }
public void LinkDocumentListToSet(ListOfscDocoSetDocumentLink docListToLink) { // for each document in the list // check if it is already linked with document set // if it is not linked, add a new link record // otherwise, ignore link. foreach (var doco in docListToLink.list) { DocumentSetDocument dslLocate = new DocumentSetDocument(); dslLocate.StartDate = DateTime.Today; dslLocate.IsVoid = 'N'; dslLocate.FKDocumentUID = doco.document.UID; dslLocate.FKDocumentSetUID = doco.documentSet.UID; if (dslLocate.Find(doco.document.UID, doco.documentSet.UID, 'N')) { // Fact: There is an existing non-voided row // Intention (1): Make it void // Intention (2): Do nothing // // Check for Intention (1) // if (doco.DocumentSetDocument.IsVoid == 'Y') { // Update row to make it voided... // Update(doco.DocumentSetDocument.UID); } // else, do nothing } else { // if the pair does not exist, check if it is void. // If void = Y, just ignore. if (doco.DocumentSetDocument.IsVoid == 'Y') { // just ignore. The pair was not saved initially. } else { // add document to set DocumentSetDocument dslAdd = new DocumentSetDocument(); dslAdd.StartDate = DateTime.Today; dslAdd.IsVoid = 'N'; dslAdd.FKDocumentUID = doco.document.UID; dslAdd.FKDocumentSetUID = doco.documentSet.UID; dslAdd.Add(); } } } }
// ----------------------------------------------------- // Delete Link // ----------------------------------------------------- public static void Delete(int DocumentSetUID, int DocumentUID) { // Links have to be deleted first // DocumentSetDocument dsd = new DocumentSetDocument(); dsd.Find(documentUID: DocumentUID, docSetUID: DocumentSetUID, voidRead: 'N'); if (dsd.UID <= 0) { return; } DocumentSetDocumentLink.DeleteAllRelated(dsd.UID); using (var connection = new MySqlConnection(ConnString.ConnectionString)) { var commandString = ( "DELETE FROM DocumentSetDocument " + " WHERE FKDocumentUID = @FKDocumentUID " + " AND FKDocumentSetUID = @FKDocumentSetUID " ); using (var command = new MySqlCommand( commandString, connection)) { command.Parameters.Add("@FKDocumentUID", MySqlDbType.Int32).Value = DocumentUID; command.Parameters.Add("@FKDocumentSetUID", MySqlDbType.Int32).Value = DocumentSetUID; command.Parameters.Add("@IsVoid", MySqlDbType.VarChar).Value = 'Y'; connection.Open(); command.ExecuteNonQuery(); } } return; }
/// <summary> /// Load document into document set /// </summary> public void LoadAllDocuments() { // Retrieve all documents // For each document (order by parent uid) // check if it is already connected to current Document Set // If it is not, connect document // Link with parent document in the set // Replicate Document Links // 21/08/2013 // Stop using DocumentList // //DocumentList dl = new DocumentList(); //dl.List(); List <Document> docl = RepDocument.List(HeaderInfo.Instance); foreach (Document document in docl) { var found = DocumentSet.FindDocumentInSet(this.UID, document.UID); if (found.document.UID > 0) { continue; } else { DocumentSetDocument dsl = new DocumentSetDocument(); // Generate new UID dsl.UID = this.GetLastUID() + 1; // Add document to set // dsl.FKDocumentSetUID = this.UID; dsl.FKDocumentUID = document.UID; dsl.Location = document.Location; dsl.IsVoid = 'N'; dsl.StartDate = System.DateTime.Today; dsl.EndDate = System.DateTime.MaxValue; dsl.FKParentDocumentUID = document.ParentUID; // Uses the Document UID as the source (Has to be combined with Doc Set) dsl.FKParentDocumentSetUID = dsl.FKDocumentSetUID; dsl.SequenceNumber = document.SequenceNumber; dsl.Add(); } } // Replicate document links // foreach (Document document in docl) { var children = DocumentLinkList.ListRelatedDocuments(document.UID); foreach (var child in children.documentLinkList) { // DocumentSetDocumentLink dsdl = new DocumentSetDocumentLink(); dsdl.FKParentDocumentUID = 0; dsdl.FKChildDocumentUID = 0; dsdl.IsVoid = 'N'; dsdl.LinkType = child.LinkType; dsdl.UID = GetLastUID() + 1; // Find parent var parent1 = DocumentSet.FindDocumentInSet(this.UID, child.FKParentDocumentUID); // Find child var child1 = DocumentSet.FindDocumentInSet(this.UID, child.FKChildDocumentUID); dsdl.FKParentDocumentUID = parent1.DocumentSetDocument.UID; dsdl.FKChildDocumentUID = child1.DocumentSetDocument.UID; dsdl.Add(); } } }