void WriteJiraEmailToRegistry() { //if(JiraEmail != null && JiraEmail.Length > 0) { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNameJiraEmail, JiraEmail); } }
void WriteDefaultTemplateToRegistry() { //if(Default != null && Default.Name.Length > 0) { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathTemplates, RegistryOperation.szKeyNameTemplateDefault, DefaultTemplate.Name); } }
public DataModel() { JiraEmail = RegistryOperation.GetBinaryKeyValueInString(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNameJiraEmail); bToEmail = RegistryOperation.GetBinaryKeyValueInBool(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebToEmail); bCcEmail = RegistryOperation.GetBinaryKeyValueInBool(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebCcEmail); bRemoveRecipients = RegistryOperation.GetBinaryKeyValueInBool(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebRemoveRecipients); // if we create using public property then it will crash at setter because of null reference. _DefaultTemplate = new JiraTemplate(); if (bToEmail == false && bCcEmail == false) { bToEmail = true; // create registry for next time as well RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebToEmail, "1"); } JiraTemplates = new List <JiraTemplate>(); string[] TemplateSubKeys = RegistryOperation.GetAppSubKeys(RegistryOperation.szAppRegPathTemplates); if (TemplateSubKeys != null && TemplateSubKeys.Length > 0) { string DefaultTemp = RegistryOperation.GetBinaryKeyValueInString(RegistryOperation.szAppRegPathTemplates, RegistryOperation.szKeyNameTemplateDefault); foreach (string keyName in TemplateSubKeys) { string data = RegistryOperation.GetBinaryKeyValueInString(RegistryOperation.szAppRegPathTemplates + "\\" + keyName, RegistryOperation.szKeyNameTemplateContent); if (data != null && data.Length > 0) { JiraTemplate jt = new JiraTemplate(); jt.Name = keyName; jt.Content = data; JiraTemplates.Add(jt); if (0 == String.Compare(keyName, DefaultTemp, true)) { DefaultTemplate = jt; } } } } else { // create default template and update the registry for next time. string szDefaultTemplate = JiraTemplate.GetDefaultTemplateContent(); RegistryOperation.CreateSubKey(RegistryOperation.szAppRegPathTemplates, RegistryOperation.szSubKeyNameTemplateDefault); RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathTemplates + "\\" + RegistryOperation.szSubKeyNameTemplateDefault, RegistryOperation.szKeyNameTemplateContent, szDefaultTemplate); JiraTemplate jt = new JiraTemplate(); jt.Name = RegistryOperation.szSubKeyNameTemplateDefault; jt.Content = szDefaultTemplate; JiraTemplates.Add(jt); DefaultTemplate = jt; } }
void WriteJiraTemplateItemToRegistry(JiraTemplate jiraTemplate) { if (jiraTemplate == null) { return; } RegistryOperation.CreateSubKey(RegistryOperation.szAppRegPathTemplates, jiraTemplate.Name); RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathTemplates + "\\" + jiraTemplate.Name, RegistryOperation.szKeyNameTemplateContent, jiraTemplate.Content); }
void WritebRemoveRecipientsToRegistry() { if (bRemoveRecipients) { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebRemoveRecipients, "1"); } else { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebRemoveRecipients, "0"); } }
void WritebCcEmailToRegistry() { if (bCcEmail) { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebCcEmail, "1"); } else { RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNamebCcEmail, "0"); } }
public void HandleReplyWithTemplate(JiraTemplate jiraTemplate) { if (dataModel.JiraEmail == null || dataModel.JiraEmail.Length < 1) { MessageBox.Show("Invalid Jira Email.\nPlease update email address in Jira Tab.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (jiraTemplate == null) { // fallback to default jiraTemplate = dataModel.DefaultTemplate; } try { Outlook._Explorer exp = Globals.ThisAddIn.Application.ActiveExplorer(); if (exp != null && exp.Selection != null && exp.Selection.Count > 0) { foreach (Object item in exp.Selection) { if (item is Outlook._MailItem) { Outlook._MailItem mailItem = (item as Outlook._MailItem); Outlook._MailItem reply = mailItem.ReplyAll(); AddTemplateDataToMailItem(reply, jiraTemplate); reply.Display(); } } } } catch (Exception Ex) { // To see this exception: Click on the email folders tree's top node i.e. the one which shows like a startup page // and contains Calendar information, tasks and messages overview. After that from ribbon click on the reply button. // http://stackoverflow.com/questions/17211827/how-to-check-if-a-vsto-outlook-explorer-object-has-been-closed // Ex.Message = "The Explorer has been closed and cannot be used for further operations. Review your code and restart Outlook." // Outlook gives valid explorer but selection paramter generates exception. //MessageBox.Show(Ex.Message + "\n" + Ex.StackTrace, "Error!!!"); RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathGeneral, RegistryOperation.szKeyNameLastError, Ex.Message.ToString() + "\n" + Ex.StackTrace.ToString()); } }
void WriteJiraTemplateListToRegistry() { // delete an existing subkey and re-populate from data model RegistryOperation.DeleteRegistrySubKey(RegistryOperation.szAppRegPath, RegistryOperation.szSubkeyTemplate); // Add all what is in datamodel jira list. foreach (JiraTemplate item in JiraTemplates) { if ( item.Name != null && item.Name.Length > 0 && item.Content != null && item.Content.Length > 0 ) { RegistryOperation.CreateSubKey(RegistryOperation.szAppRegPathTemplates, item.Name); RegistryOperation.CreateBinaryKeyValue(RegistryOperation.szAppRegPathTemplates + "\\" + item.Name, RegistryOperation.szKeyNameTemplateContent, item.Content); } } }