/// <summary> /// Upload document list /// </summary> /// <param name="document"></param> private void UploadDocument(TreeNode docSelected) { var rm = new scClientDocSetDocLink(); rm = (scClientDocSetDocLink)docSelected.Tag; // Cast if (rm.document.DocumentType == MackkadoITFramework.Helper.Utils.DocumentType.FOLDER) { foreach (TreeNode tn in docSelected.Nodes) { // Print Document var docToPrint = new scClientDocSetDocLink(); docToPrint = (scClientDocSetDocLink)docSelected.Tag; UploadDocument(tn); } } else { // Utils.OpenDocument( txtDestinationFolder.Text + rm.clientDocument.Location, rm.clientDocument.FileName, rm.clientDocument.DocumentType ); string file = Utils.getFilePathName(destinationFolder + rm.clientDocument.Location, rm.clientDocument.FileName); try { UploaderStatus.Text = "Uploading " + file; this.Refresh(); modelGoogle.UploadFile(file); UploaderStatus.Text = "Successfully uploaded " + file; UpdateDocList(); } catch (ArgumentException) { DialogResult result = MessageBox.Show("Error, unable to upload the file: '" + file + "'. It is not one of the valid types.", "Upload Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); UploaderStatus.Text = "Problems uploading"; if (result == DialogResult.Cancel) { return; } } catch (Exception ex) { DialogResult result = MessageBox.Show("Error, unable to upload the file: '" + file + "'. " + ex.Message, "Upload Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); UploaderStatus.Text = "Problems uploading"; if (result == DialogResult.Cancel) { return; } } } }
// --------------------------------------------------------------------------------- // Save // --------------------------------------------------------------------------------- private void tsbSave_Click(object sender, EventArgs e) { if (parentDocument.UID <= 0) { MessageBox.Show("Main document is not selected."); return; } foreach (TreeNode tn in tvLinkedDocuments.Nodes[0].Nodes) { var nodeType = tn.Tag.GetType().Name; if (nodeType == "scClientDocSetDocLink") { var doc = new scClientDocSetDocLink(); doc = (scClientDocSetDocLink)tn.Tag; // Add parentClientDocument and childClientDocument... Daniel 17/08/2010 // ClientDocumentLink.LinkDocuments( clientUID: selectedClient.UID, clientDocumentSetUID: selectedClientDocumentSet.UID, parentDocumentUID: parentDocument.UID, childDocumentUID: doc.document.UID, LinkType: cbxLinkType.Text); } if (nodeType == "Document") { Document doc = new Document(); doc = (Document)tn.Tag; ClientDocumentLink.LinkDocuments( clientUID: selectedClient.UID, clientDocumentSetUID: selectedClientDocumentSet.UID, parentDocumentUID: parentDocument.UID, childDocumentUID: doc.UID, LinkType: cbxLinkType.Text); } } MessageBox.Show("Saved successfully."); }
private void uploadDocumentToolStripMenuItem_Click(object sender, EventArgs e) { if (!modelGoogle.loggedIn) { MessageBox.Show("Please log in before uploading documents", "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // // Get selected document from tree // tndocSelected = tvFileList.SelectedNode; var rm = new scClientDocSetDocLink(); if (tndocSelected == null) { return; } UploadDocument(tndocSelected); }
private void btnEdit_Click(object sender, EventArgs e) { // // Get selected document from tree // TreeNode tndocSelected = tvDocumentList.SelectedNode; if (tndocSelected == null) { return; } var cds = new scClientDocSetDocLink(); cds = (scClientDocSetDocLink)tndocSelected.Tag; var Location = cds.clientDocument.Location; var FileName = cds.clientDocument.FileName; var FileType = cds.clientDocument.DocumentType; //string filePathName = // Utils.getFilePathName(Location, // FileName); //if (!string.IsNullOrEmpty(filePathName)) //{ // WordDocumentTasks.OpenDocument(filePathName); //} //else //{ // MessageBox.Show("Document is empty."); //} Utils.OpenDocument(Location, FileName, FileType, vkReadOnly: false); }
/// <summary> /// Delete document selected. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteDocument_Click(object sender, EventArgs e) { var resp = MessageBox.Show("Are you sure?", "Delete Document", MessageBoxButtons.YesNo); if (resp != DialogResult.Yes) { return; } // // Get selected document from tree // TreeNode docSelected = tvFileList.SelectedNode; if (docSelected == null) { return; } if (docSelected.Tag.GetType().Name == "scClientDocSetDocLink") { var rm = new scClientDocSetDocLink(); rm = (scClientDocSetDocLink)docSelected.Tag; // Cast try { // rm.document.Delete( rm.document.UID ); // RepDocument.Delete(rm.document.UID); BUSDocument.DeleteDocument(rm.document.UID); } catch { // Using Logical Deletion // rm.document.SetToVoid( rm.document.UID ); // RepDocument.SetToVoid(rm.document.UID); BUSDocument.SetToVoid(rm.document.UID); } } if (docSelected.Tag.GetType().Name == "Document") { var rm = new Document(); rm = (Document)docSelected.Tag; // Cast try { // rm.Delete( rm.UID ); // RepDocument.Delete(rm.UID); BUSDocument.DeleteDocument(rm.UID); } catch { // rm.SetToVoid( rm.UID ); // RepDocument.SetToVoid(rm.UID); BUSDocument.SetToVoid(rm.UID); } } // Physically delete items // Remove item docSelected.Remove(); }
// ------------------------------------------------------------------- // Saves TreeNode of a client tree // ------------------------------------------------------------------- private static TreeNode SaveTreeNodeToClient(TreeNode treeNode, int parentID, ClientDocumentSet clientDocumentSet) { TreeNode ret = new TreeNode(); ClientDocument cdsl = new ClientDocument(); var t = treeNode.Tag.GetType(); // If the type is not document, it is an existing document // // var documentLink = new FCMStructures.scClientDocSetDocLink(); var documentLink = new scClientDocSetDocLink(); if (t.Name == "scClientDocSetDocLink") { documentLink = (scClientDocSetDocLink)treeNode.Tag; documentLink.clientDocument.SequenceNumber = treeNode.Index; } // // If the type is Document, it means a new document added to the client // list // if (t.Name == "Document") #region Document { documentLink.document = new Document.Document(); documentLink.document = (Document.Document)treeNode.Tag; documentLink.clientDocument = new ClientDocument(); documentLink.clientDocumentSet = new ClientDocumentSet(); // Fill in the extra details... // documentLink.clientDocument.EndDate = System.DateTime.MaxValue; documentLink.clientDocument.FKClientDocumentSetUID = clientDocumentSet.ClientSetID; // Utils.ClientSetID; documentLink.clientDocument.FKClientUID = clientDocumentSet.FKClientUID; //Utils.ClientID; if (clientDocumentSet.FKClientUID <= 0) { MessageBox.Show("Client ID not supplied."); return(null); } documentLink.clientDocument.FKDocumentUID = documentLink.document.UID; documentLink.clientDocument.Generated = 'N'; documentLink.clientDocument.SourceIssueNumber = documentLink.document.IssueNumber; documentLink.clientDocument.ClientIssueNumber = 00; // When the source is client, the name will have already all the numbers // //if (documentLink.document.SourceCode == Utils.SourceCode.CLIENT) //{ // documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; //} //else //{ //} if (documentLink.document.RecordType == Utils.RecordType.FOLDER) { documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; documentLink.clientDocument.FileName = documentLink.document.SimpleFileName; } else { documentLink.clientDocument.ComboIssueNumber = ClientDocument.GetComboIssueNumber(documentLink.document.CUID, documentLink.document.IssueNumber, clientDocumentSet.FKClientUID); documentLink.clientDocument.FileName = documentLink.clientDocument.ComboIssueNumber + " " + documentLink.document.SimpleFileName; } documentLink.clientDocument.IsProjectPlan = documentLink.document.IsProjectPlan; documentLink.clientDocument.DocumentCUID = documentLink.document.CUID; documentLink.clientDocument.DocumentType = documentLink.document.DocumentType; // The client document location includes the client path (%CLIENTFOLDER%) plus the client document set id // %CLIENTFOLDER%\CLIENTSET201000001R0001\ // How to identify the parent folder // // documentLink.clientDocument.ParentUID = destFolder.clientDocument.UID; documentLink.clientDocument.ParentUID = parentID; // documentLink.clientDocument.Location = txtDestinationFolder.Text + // Utils.GetClientPathInside(documentLink.document.Location); documentLink.clientDocument.Location = GetClientDocumentLocation(parentID); documentLink.clientDocument.RecordType = documentLink.document.RecordType; documentLink.clientDocument.SequenceNumber = treeNode.Index; documentLink.clientDocument.SourceFileName = documentLink.document.FileName; documentLink.clientDocument.SourceLocation = documentLink.document.Location; documentLink.clientDocument.StartDate = System.DateTime.Today; documentLink.clientDocument.UID = 0; documentLink.clientDocumentSet.UID = clientDocumentSet.ClientSetID; // clientDocumentSet.UID; // Utils.ClientSetID; documentLink.clientDocumentSet.SourceFolder = clientDocumentSet.SourceFolder; documentLink.clientDocumentSet.ClientSetID = clientDocumentSet.ClientSetID; // Utils.ClientSetID; documentLink.clientDocumentSet.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocumentSet.Folder = clientDocumentSet.Folder; } #endregion Document // Save link to database // documentLink.clientDocument.UID = cdsl.LinkDocumentToClientSet(documentLink); foreach (TreeNode children in treeNode.Nodes) { SaveTreeNodeToClient(children, documentLink.clientDocument.UID, clientDocumentSet); } return(ret); }
// // List documents for a client // public void List(int clientID, int clientDocumentSetUID) { clientDocSetDocLink = new List <scClientDocSetDocLink>(); using (var connection = new MySqlConnection(ConnString.ConnectionString)) { var commandString = string.Format( " SELECT " + " UID " + " ,FKClientUID " + " ,FKClientDocumentSetUID " + " ,FKDocumentUID " + " ,SequenceNumber " + " ,StartDate " + " ,EndDate " + " ,IsVoid " + " ,SourceLocation " + " ,SourceFileName " + " ,Location " + " ,FileName " + " ,SourceIssueNumber " + " ,Generated " + " ,RecordType " + " ,ParentUID " + " FROM ClientDocument " + " WHERE FKClientUID = {0} " + " AND FKClientDocumentSetUID = {1} " + " ORDER BY ParentUID ASC, SequenceNumber ASC ", clientID, clientDocumentSetUID ); using (var command = new MySqlCommand( commandString, connection)) { connection.Open(); using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { // Ignore voids if (Convert.ToChar(reader["IsVoid"]) == 'Y') { continue; } var docItem = new scClientDocSetDocLink(); // Get document // docItem.document = new Model.ModelDocument.Document(); docItem.document.UID = Convert.ToInt32(reader["FKDocumentUID"]); // docItem.document.Read(); docItem.document = RepDocument.Read(false, docItem.document.UID); // Get Client Document Set // docItem.clientDocumentSet = new ClientDocumentSet(); docItem.clientDocumentSet.UID = Convert.ToInt32(reader["FKClientDocumentSetUID"].ToString()); docItem.clientDocumentSet.FKClientUID = Convert.ToInt32(reader["FKClientUID"].ToString()); // Set Client Document // docItem.clientDocument = new ClientDocument(); docItem.clientDocument.UID = Convert.ToInt32(reader["UID"].ToString()); docItem.clientDocument.FKDocumentUID = Convert.ToInt32(reader["FKDocumentUID"].ToString()); docItem.clientDocument.SequenceNumber = Convert.ToInt32(reader["SequenceNumber"].ToString()); docItem.clientDocument.FKClientDocumentSetUID = Convert.ToInt32(reader["FKClientDocumentSetUID"].ToString()); docItem.clientDocument.IsVoid = Convert.ToChar(reader["IsVoid"].ToString()); docItem.clientDocument.StartDate = Convert.ToDateTime(reader["StartDate"].ToString()); docItem.clientDocument.SourceLocation = reader["SourceLocation"].ToString(); docItem.clientDocument.SourceFileName = reader["SourceFileName"].ToString(); docItem.clientDocument.Location = reader["Location"].ToString(); docItem.clientDocument.FileName = reader["FileName"].ToString(); docItem.clientDocument.SourceIssueNumber = Convert.ToInt32(reader["SourceIssueNumber"].ToString()); docItem.clientDocument.Generated = Convert.ToChar(reader["Generated"]); docItem.clientDocument.RecordType = reader["RecordType"].ToString(); docItem.clientDocument.ParentUID = Convert.ToInt32(reader["ParentUID"].ToString()); try { docItem.clientDocument.EndDate = Convert.ToDateTime(reader["EndDate"].ToString()); } catch { docItem.clientDocument.EndDate = System.DateTime.MaxValue; } this.clientDocSetDocLink.Add(docItem); } } } } }
/// <summary> /// Add FCM document to Client Set /// </summary> /// <param name="headerInfo"></param> /// <param name="clientUID"></param> /// <param name="clientDocumentSetUID"></param> /// <param name="documentUID"></param> /// <returns></returns> public static ResponseStatus AddDocumentToSet(HeaderInfo headerInfo, int clientUID, int clientDocumentSetUID, int documentUID) { string sourceFolder = ""; string destinationFolder = ""; if (clientUID <= 0) { return new ResponseStatus { Message = "Client UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0001 } } ; if (clientDocumentSetUID <= 0) { return new ResponseStatus { Message = "Client Document Set UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0002 } } ; if (documentUID <= 0) { return new ResponseStatus { Message = "Document UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0003 } } ; // Find Document // DocumentReadRequest documentReadRequest = new DocumentReadRequest(); documentReadRequest.headerInfo = headerInfo; documentReadRequest.retrieveVoidedDocuments = false; documentReadRequest.UID = documentUID; var documentReadResponse = BUSDocument.DocumentRead(documentReadRequest); var documentSelected = new Document(); documentSelected = documentReadResponse.document; // Find parent of the document // var folderReadRequestParent = new DocumentReadRequest(); folderReadRequestParent.headerInfo = headerInfo; folderReadRequestParent.retrieveVoidedDocuments = false; folderReadRequestParent.UID = documentSelected.ParentUID; // Reading parent var folderParentResponse = BUSDocument.DocumentRead(folderReadRequestParent); var folderParent = new Document(); folderParent = folderParentResponse.document; // Find the equivalent parent in ClientDocumentSetDocument // var foundParent = RepClientDocument.Find(folderParent.UID, clientDocumentSetUID, 'N', clientUID); if (foundParent.UID <= 0) { return new ResponseStatus { Message = "Parent folder not found.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0006 } } ; // Find ClientDocumentSet // var clientDocumentSet = new ClientDocumentSet(); clientDocumentSet.UID = clientDocumentSetUID; clientDocumentSet.FKClientUID = clientUID; clientDocumentSet.Read(); if (clientDocumentSet.UID <= 0) { return new ResponseStatus { Message = "Client Document Set not found.", XMessageType = MessageType.Error, ReturnCode = -0030, ReasonCode = 0004 } } ; // Create link // var documentLink = new scClientDocSetDocLink(); if (documentSelected.RecordType == "DOCUMENT") #region Document { documentLink.document = new Document(); documentLink.document = documentSelected; documentLink.clientDocument = new ClientDocument(); documentLink.clientDocumentSet = new ClientDocumentSet(); // Fill in the extra details... // documentLink.clientDocument.EndDate = System.DateTime.MaxValue; documentLink.clientDocument.FKClientDocumentSetUID = clientDocumentSet.UID; documentLink.clientDocument.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocument.FKDocumentUID = documentLink.document.UID; documentLink.clientDocument.Generated = 'N'; documentLink.clientDocument.SourceIssueNumber = documentLink.document.IssueNumber; documentLink.clientDocument.ClientIssueNumber = 00; if (documentLink.document.RecordType == FCMConstant.RecordType.FOLDER) { documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; documentLink.clientDocument.FileName = documentLink.document.SimpleFileName; } else { documentLink.clientDocument.ComboIssueNumber = BUSClientDocument.GetComboIssueNumber(documentLink.document.CUID, documentLink.document.IssueNumber, clientDocumentSet.FKClientUID); documentLink.clientDocument.FileName = documentLink.clientDocument.ComboIssueNumber + " " + documentLink.document.SimpleFileName; } documentLink.clientDocument.IsProjectPlan = documentLink.document.IsProjectPlan; documentLink.clientDocument.DocumentCUID = documentLink.document.CUID; documentLink.clientDocument.DocumentType = documentLink.document.DocumentType; // The client document location includes the client path (%CLIENTFOLDER%) plus the client document set id // %CLIENTFOLDER%\CLIENTSET201000001R0001\ // How to identify the parent folder // documentLink.clientDocument.ParentUID = foundParent.UID; // Daniel // 01-Jul-2013 // Retrieving the clientdocument parent using the UID for the parent clientdocument // // documentLink.clientDocument.Location = BUSClientDocument.GetClientDocumentLocation(folderReadRequestParent.UID); documentLink.clientDocument.Location = BUSClientDocument.GetClientDocumentLocation(foundParent.UID); documentLink.clientDocument.RecordType = documentLink.document.RecordType; documentLink.clientDocument.SequenceNumber = 1; documentLink.clientDocument.SourceFileName = documentLink.document.FileName; documentLink.clientDocument.SourceLocation = documentLink.document.Location; documentLink.clientDocument.StartDate = System.DateTime.Today; documentLink.clientDocument.UID = 0; documentLink.clientDocumentSet.UID = clientDocumentSetUID; documentLink.clientDocumentSet.SourceFolder = sourceFolder; documentLink.clientDocumentSet.ClientSetID = clientDocumentSet.UID; documentLink.clientDocumentSet.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocumentSet.Folder = destinationFolder; } #endregion Document // Save link to database // // documentLink.clientDocument.UID = cdsl.LinkDocumentToClientSet(documentLink); documentLink.clientDocument.UID = LinkDocumentToClientSet(documentLink); return(new ResponseStatus()); }
public static int LinkDocumentToClientSet(scClientDocSetDocLink doco) { return(RepClientDocument.LinkDocumentToClientSet(doco)); }