From 4b7c737a57cfce2d2c791950efd5f68af673fca4 Mon Sep 17 00:00:00 2001 From: Wellington Ribeiro Date: Mon, 16 Mar 2026 20:15:15 +0000 Subject: [PATCH] Add custom tray icon and remove rule from selected email --- OutlookCaseHelper.sln | 1 + OutlookCaseHelper/Form1.cs | 51 +++++++++++++++++++++++++++++++++---- caseh.ico | Bin 0 -> 370070 bytes 3 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 caseh.ico diff --git a/OutlookCaseHelper.sln b/OutlookCaseHelper.sln index ff5fccc..4470606 100644 --- a/OutlookCaseHelper.sln +++ b/OutlookCaseHelper.sln @@ -8,6 +8,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}" ProjectSection(SolutionItems) = preProject App.config = App.config + caseh.ico = caseh.ico OutlookHelper.cs = OutlookHelper.cs EndProjectSection EndProject diff --git a/OutlookCaseHelper/Form1.cs b/OutlookCaseHelper/Form1.cs index ee4851e..12989b3 100644 --- a/OutlookCaseHelper/Form1.cs +++ b/OutlookCaseHelper/Form1.cs @@ -1,6 +1,7 @@ using System; using System.Drawing; using System.Windows.Forms; +using System.IO; namespace OutlookCaseHelper { @@ -22,13 +23,14 @@ namespace OutlookCaseHelper private void InitializeTray() { trayMenu = new ContextMenuStrip(); - trayMenu.Items.Add("Process Selected Email", null, ProcessEmail_Click); - trayMenu.Items.Add("Remove Rule", null, RemoveRule_Click); + trayMenu.Items.Add("Create Rule (Selected Email)", null, ProcessEmail_Click); + trayMenu.Items.Add("Remove Rule (Selected Email)", null, RemoveRuleFromSelected_Click); + trayMenu.Items.Add("Remove Rule (Manual ID)", null, RemoveRule_Click); trayMenu.Items.Add("-"); trayMenu.Items.Add("Exit", null, Exit_Click); trayIcon = new NotifyIcon(); - trayIcon.Icon = SystemIcons.Application; + trayIcon.Icon = new Icon(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "casenew.ico")); trayIcon.ContextMenuStrip = trayMenu; trayIcon.Text = "Outlook Case Manager"; trayIcon.Visible = true; @@ -43,7 +45,7 @@ namespace OutlookCaseHelper if (string.IsNullOrEmpty(trackingId)) { MessageBox.Show( - "No email selected or ID not found in subject.\n\nExpected format: Title - TrackingID1111111111111111", + "No email selected or ID not found in subject.\n\nExpected format: Title - TrackingID#1111111111111111", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); @@ -106,6 +108,46 @@ namespace OutlookCaseHelper } } + // NOVO: Remove Rule pelo email selecionado no Outlook + private void RemoveRuleFromSelected_Click(object? sender, EventArgs e) + { + try + { + var trackingId = outlookHelper.GetSelectedEmailTrackingId(); + if (string.IsNullOrEmpty(trackingId)) + { + MessageBox.Show( + "No email selected or ID not found in subject.\n\nExpected format: Title - TrackingID#1111111111111111", + "Warning", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + return; + } + + bool success = outlookHelper.RemoveRuleAndMoveToClosed(trackingId); + if (success) + { + MessageBox.Show( + $"Rule removed successfully!\n\nFolder moved to: Inbox > Cases > Closed\nTrackingID: {trackingId}", + "Success", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + else + { + MessageBox.Show( + "Error removing rule. Check if folder exists and Outlook is open.", + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + } + catch (Exception ex) + { + MessageBox.Show($"Error: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + private void TrayIcon_MouseDoubleClick(object? sender, MouseEventArgs e) { ProcessEmail_Click(null, EventArgs.Empty); @@ -117,7 +159,6 @@ namespace OutlookCaseHelper Application.Exit(); } - // Simple input dialog private class InputForm : Form { private TextBox txtInput; diff --git a/caseh.ico b/caseh.ico new file mode 100644 index 0000000000000000000000000000000000000000..bb4d8cbb593da24ff38f53e258121642fee276d8 GIT binary patch literal 370070 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