public OpenkMAddIn() { // Initialize vars; configXML = new ConfigXML(); docXML = new DocumentXML(); fileUtil = new FileUtil(); // Initialize forms configurationForm = new ConfigurationForm(); }
public ExplorerForm(Object application, String formType, ConfigXML configXML, DocumentXML docXML) { try { resources = new ComponentResourceManager(typeof(ExplorerForm)); this.application = application; this.formType = formType; imageList = new ImageUtil(); this.configXML = configXML; this.documentXML = docXML; // Initialize component InitializeComponent(); // Centering form this.CenterToParent(); // Column translations dataGridView.Columns[0].HeaderText = ""; dataGridView.Columns[1].HeaderText = ""; dataGridView.Columns[2].HeaderText = ""; dataGridView.Columns[3].HeaderText = resources.GetString("name"); dataGridView.Columns[4].HeaderText = resources.GetString("author"); dataGridView.Columns[5].HeaderText = resources.GetString("version"); dataGridView.Columns[6].HeaderText = resources.GetString("date"); // Translations edit.Text = resources.GetString("edit"); cancel.Text = resources.GetString("cancel"); this.Text = resources.GetString("documentexplorer"); // By default edit button is always disabled edit.Enabled = false; // Setting the image list tree.ImageList = imageList.get(); // Grid user properties dataGridView.AllowUserToAddRows = false; dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToOrderColumns = false; dataGridView.MultiSelect = false; dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // Adding click handlers tree.NodeMouseClick += new TreeNodeMouseClickEventHandler(nodeMouseClick); dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick); } catch (Exception e) { String errorMsg = "ExplorerForm - (ExplorerForm)\n" + e.Message + "\n\n" + e.StackTrace; MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
public ConfigurationForm() { resources = new ComponentResourceManager(typeof(ConfigurationForm)); InitializeComponent(); this.Text = resources.GetString("configuration"); this.CenterToParent(); ConfigXML configXML = new ConfigXML(); textBoxHost.Text = configXML.getHost(); textBoxUserName.Text = configXML.getUser(); textBoxPassword.Text = configXML.getPassword(); }
public AddinModule() { InitializeComponent(); configXML = new ConfigXML(); openkmAddin = new OpenKMAddIn(); // Internacionalitzation this.import.Caption = resources.GetString("import"); this.configure.Caption = resources.GetString("configure"); // Please add any initialization code to the AddinInitialize event handler this.import.Click += new AddinExpress.MSO.ADXClick_EventHandler(import_Click); this.configure.Click += new AddinExpress.MSO.ADXClick_EventHandler(configure_Click); }
public TreeForm(Object application, ConfigXML configXML) { try { resources = new ComponentResourceManager(typeof(TreeForm)); this.application = application; this.configXML = configXML; imageList = new ImageUtil(); // Initialize component InitializeComponent(); // Centering form this.CenterToParent(); // Translations accept.Text = resources.GetString("accept"); cancel.Text = resources.GetString("cancel"); this.Text = resources.GetString("treenavigator"); // By default accept button is always disabled accept.Enabled = false; // Setting the image list tree.ImageList = imageList.get(); // Adding click handler treeNodeMouseClickEventHandler = new TreeNodeMouseClickEventHandler(nodeMouseClick); tree.NodeMouseClick += treeNodeMouseClickEventHandler; } catch (Exception e) { String errorMsg = "TreeForm - (TreeForm)\n" + e.Message + "\n\n" + e.StackTrace; MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void buttonAccept_Click(object sender, EventArgs e) { bool error = false; String errorTXT = ""; if (textBoxUserName.Text.Equals("")) { error = true; errorTXT += String.Format(resources.GetString("error"), resources.GetString("username")) + "\n"; } if (textBoxPassword.Text.Equals("")) { error = true; errorTXT += String.Format(resources.GetString("error"), resources.GetString("password")) + "\n"; } if (textBoxHost.Text.Equals("")) { error = true; errorTXT += String.Format(resources.GetString("error"), resources.GetString("host")) + "\n"; } if (error) { MessageBox.Show(errorTXT, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { ConfigXML configXML = new ConfigXML(); configXML.setHost(textBoxHost.Text); configXML.setUser(textBoxUserName.Text); configXML.setPassword(textBoxPassword.Text); configXML.CreateConfigurationFile(); this.Hide(); } }
public void ImportMail(Outlook.Explorers explorers, ConfigXML configXML) { ComponentResourceManager resources = new ComponentResourceManager(typeof(OpenKMAddIn)); int mailCount = 0; int mailAttach = 0; for (int y = 1; y <= explorers.Count; y++) { Outlook.Explorer openWindow = explorers.Item(y); String token = ""; OKMAuth authService = new OKMAuth(configXML.getHost()); OKMFolder folderService = new OKMFolder(configXML.getHost()); OKMRepository repositoryService = new OKMRepository(configXML.getHost()); OKMMail mailService = new OKMMail(configXML.getHost()); OKMDocument documentService = new OKMDocument(configXML.getHost()); try { if (configXML.getUser().Equals("") || configXML.getPassword().Equals("") || configXML.getHost().Equals("")) { throw new Exception(resources.GetString("error_configuration_empty")); } token = authService.login(configXML.getUser(), configXML.getPassword()); for (int i = 1; i<=openWindow.Selection.Count; i++) { Object selObject = openWindow.Selection.Item(i); if (selObject is Outlook.MailItem) { mailCount++; Outlook.MailItem mailItem = (selObject as Outlook.MailItem); DateTime receivedTime = mailItem.ReceivedTime; String user = configXML.getUser(); String basePath = "/okm:mail/" + user + "/"; String year = "" + receivedTime.Year; String month = "" + receivedTime.Month; String day = "" + receivedTime.Day; // Only creating folders when it's needed if (repositoryService.hasNode(token, basePath + year)) { if (repositoryService.hasNode(token, basePath + year + "/" + month)) { if (!repositoryService.hasNode(token, basePath + year + "/" + month + "/" + day)) { folder dayFolder = new folder(); dayFolder.path = basePath + year + "/" + month + "/" + day; folderService.create(token, dayFolder); } } else { folder monthFolder = new folder(); folder dayFolder = new folder(); monthFolder.path = basePath + year + "/" + month; dayFolder.path = basePath + year + "/" + month + "/" + day; folderService.create(token, monthFolder); folderService.create(token, dayFolder); } } else { folder yearFolder = new folder(); folder monthFolder = new folder(); folder dayFolder = new folder(); yearFolder.path = basePath + year; monthFolder.path = basePath + year + "/" + month; dayFolder.path = basePath + year + "/" + month + "/" + day; folderService.create(token, yearFolder); folderService.create(token, monthFolder); folderService.create(token, dayFolder); } // Adding mail values mail newMail = new mail(); newMail.path = basePath + year + "/" + month + "/" + day + "/" + mailItem.Subject; newMail.subject = mailItem.Subject; newMail.from = mailItem.GetType().InvokeMember("SenderEmailAddress", System.Reflection.BindingFlags.GetProperty, null, mailItem, null).ToString(); //newMail.from = mailItem.SenderEmailAddress; // SenderEmailAddress was introduced in outlook 2002 newMail.sentDate = mailItem.SentOn; newMail.sentDateSpecified = true; newMail.receivedDate = mailItem.ReceivedTime; newMail.receivedDateSpecified = true; // Setting mail context and type BodyFormat format = (BodyFormat) mailItem.GetType().InvokeMember("BodyFormat", System.Reflection.BindingFlags.GetProperty, null, mailItem, null); if (format.Equals(BodyFormat.olFormatPlain)) { newMail.mimeType = "text/plain"; newMail.content = mailItem.Body; } else { newMail.mimeType = "text/html"; newMail.content = mailItem.HTMLBody; } // Initialize count recipient address variables int count = 0; int countTo = 0; int countCC = 0; int countBCC = 0; int actualCountTo = 0; int actualCountCC = 0; int actualCountBCC = 0; // Count each mail addresss type to / cc / bcc for (int x=1; x<=mailItem.Recipients.Count; x++) { Outlook.Recipient recipient = mailItem.Recipients.Item(x); switch (recipient.Type) { case 1: countTo++; break; case 2: countCC++; break; case 3: countBCC++; break; default: countTo++; break; } count++; } // Initialize variables String[] mailTo = new String[(countTo > 0) ? countTo : 1]; String[] mailCC = new String[(countCC > 0) ? countCC : 1]; String[] mailBCC = new String[(countBCC > 0) ? countBCC : 1]; // All string[] must have at least one value, it¡s mandatory in webservices if (countTo == 0) { mailTo[0] = ""; } if (countCC == 0) { mailCC[0] = ""; } if (countBCC == 0) { mailBCC[0] = ""; } // Depending mail type each mail is assignede to it own type String[] for (int x=1; x<=mailItem.Recipients.Count; x++) { Outlook.Recipient recipient = mailItem.Recipients.Item(x); switch (recipient.Type) { case 1: mailTo[actualCountTo] = recipient.Address; actualCountTo++; break; case 2: mailCC[actualCountCC] = recipient.Address; actualCountCC++; break; case 3: mailBCC[actualCountBCC] = recipient.Address; actualCountBCC++; break; default: mailTo[actualCountTo] = recipient.Address; actualCountTo++; break; } } // Assign mail recipients by type newMail.bcc = mailBCC; newMail.cc = mailCC; newMail.to = mailTo; // Creating mail newMail = mailService.create(token, newMail); // Setting attachments if (mailItem.Attachments.Count > 0) { for (int x=1; x<=mailItem.Attachments.Count; x++) { Outlook.Attachment attachment = mailItem.Attachments.Item(x); mailAttach++; document doc = new document(); doc.path = newMail.path + "/" + attachment.FileName; // save as tempfile for reading String filename = Environment.GetEnvironmentVariable("TEMP") + "\\" + DateTime.Now.ToString("yymmddHHMMss-") + attachment.FileName; // save the attachment attachment.SaveAsFile(filename); // Uploading document documentService.create(token, doc, ReadFile(filename)); // Delete a file by using File class static method... if (File.Exists(filename)) { // Use a try block to catch IOExceptions, to // handle the case of the file already being // opened by another process. try { File.Delete(filename); } catch (System.IO.IOException ex) { MessageBox.Show(String.Format(resources.GetString("error_deleting_tmp_file"), filename, ex.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } // Releasing com object Marshal.ReleaseComObject(attachment); } } // Releasing com object Marshal.ReleaseComObject(mailItem); } // Releasing com object Marshal.ReleaseComObject(selObject); } if (!token.Equals("")) { authService.logout(token); // Always we logout token = ""; // Reseting token value } if (mailCount > 0) { MessageBox.Show(String.Format(resources.GetString("email_successful_imported"), mailCount, mailAttach)); } else { MessageBox.Show(resources.GetString("error_mail_not_selected"), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); if (!token.Equals("")) { authService.logout(token); // Always we logout } } } }