コード例 #1
0
        // -----------------------------------------------------
        //    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;
        }
コード例 #2
0
        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();
                    }
                }
            }
        }
コード例 #3
0
        // -----------------------------------------------------
        //          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;
        }
コード例 #4
0
        /// <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();
                }
            }
        }