private void btnOptions_Click(object sender, RibbonControlEventArgs e) { using (var options = new WindowOptions(OutlookHelpers.GetDictionaryStores())) { options.ShowDialog(); } }
/// <summary> /// Analyzes selected item and create folders scores for it. /// </summary> /// <param name="item">Selected item</param> public static async void SelectionChanged(IOutlookItem item) { try { SelectedItem = item; var r = item.GetText(); var s = item.GetSubject(); SelectedMailScores = await Task.Run(() => GetScoresForMail(item)); var myRibbon = Globals.Ribbons.MainRibbon; myRibbon.menuChoose.Enabled = SelectedMailScores.Count > 0; myRibbon.btnFileEmail.Enabled = SelectedMailScores.Count > 0; myRibbon.btnChoose1.Visible = SelectedMailScores.Count > 0; myRibbon.btnNdOpt.Enabled = SelectedMailScores.Count > 1; myRibbon.btnChoose2.Visible = SelectedMailScores.Count > 1; myRibbon.btnRdOpt.Enabled = SelectedMailScores.Count > 2; myRibbon.btnChoose3.Visible = SelectedMailScores.Count > 2; myRibbon.btnChoose4.Visible = SelectedMailScores.Count > 3; myRibbon.btnChoose5.Visible = SelectedMailScores.Count > 4; myRibbon.btnFileEmail.Label = SelectedMailScores.Count > 0 ? SelectedMailScores.First().Key : ""; myRibbon.btnNdOpt.Label = SelectedMailScores.Count > 1 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(1).Key) : ""; myRibbon.btnRdOpt.Label = SelectedMailScores.Count > 2 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(2).Key) : ""; myRibbon.btnChoose1.Label = SelectedMailScores.Count > 0 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.First().Key) : ""; myRibbon.btnChoose2.Label = SelectedMailScores.Count > 1 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(1).Key) : ""; myRibbon.btnChoose3.Label = SelectedMailScores.Count > 2 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(2).Key) : ""; myRibbon.btnChoose4.Label = SelectedMailScores.Count > 3 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(3).Key) : ""; myRibbon.btnChoose5.Label = SelectedMailScores.Count > 4 ? OutlookHelpers.AdjustLabelLength(SelectedMailScores.ElementAt(4).Key) : ""; } catch (System.Exception ex) { MyMessageBox.Show("Error occured when selection changed. Error: " + ex); } }
/// <summary> /// Loads all saved data /// </summary> public static void LoadData() { try { var storeNames = StorageHelpers.LoadAndDeserialize <List <string> >(Constants.ParamStoresNames); _results = StorageHelpers.LoadAndDeserialize <List <Result> >(Constants.ParamResults)?.ToDictionary(r => new Tuple <int, bool>(r.LearnerId, r.WithBody), r => r) ?? new Dictionary <Tuple <int, bool>, Result>(); if (storeNames != null && storeNames.Count > 0) { var userStores = OutlookHelpers.GetDictionaryStores(); _analyzedStoresIds = userStores.Where(d => storeNames.Contains(d.Value.DisplayName)).Select(s => s.Value.StoreID).ToList(); foreach (var userStore in userStores) { if (_analyzedStoresIds.Contains(userStore.Value.StoreID)) { var storeModel = new StoreModel(userStore.Value); storeModel.LoadStoreModel(); _storeModels.Add(storeModel.StoreId, storeModel); } } _finishedLoading = true; Globals.Ribbons.MainRibbon.labelInfo.Label = " "; } else { Globals.Ribbons.MainRibbon.labelInfo.Label = "Not analyzed"; } } catch (System.Exception ex) { MyMessageBox.Show("Error when loading data. Error: " + ex); } }
public string[] GetInput() { return(new[] { "meeting", _item.SenderEmailAddress ?? "", _item.SenderName ?? "", OutlookHelpers.GetDomainFromEmail(_item.SenderEmailAddress) }); }
private void PopulateTree(List <Store> stores) { treeViewFolders.BeginUpdate(); foreach (Store store in stores) { treeViewFolders.Nodes.Add(OutlookHelpers.CreateTreeNodeForStore(store)); } treeViewFolders.Sort(); treeViewFolders.EndUpdate(); }
public StoreModel(Store store) { Accord = new AccordML(); Store = store; StoreId = store.StoreID; foreach (var i in _defaultFolders) { _foldersIdsToIgnore.Add(Store.GetDefaultFolder(i).EntryID); } StoreFolders = OutlookHelpers.GetStoreFolders(store); }
/// <summary> /// Removes all addin saved data. /// </summary> public static void RemoveSavedData() { StorageHelpers.RemoveStores(); foreach (var store in OutlookHelpers.GetDictionaryStores()) { StorageHelpers.RemoveStorage(store.Value.DisplayName); } SelectedMailScores = new Dictionary <string, double>(); _analyzedStoresIds = new List <string>(); _storeModels = new Dictionary <string, StoreModel>(); SelectionChanged(SelectedItem); }
private void btnSend_Click(object sender, EventArgs e) { string subjectEmail = textBoxSubject.Text; string bodyEmail = textBoxDescription.Text; if (chBwithResults.Checked) { bodyEmail += Environment.NewLine + "Results:" + Environment.NewLine + MainController.GetResults(); } OutlookHelpers.SendEmail(subjectEmail, bodyEmail); DialogResult = DialogResult.OK; Close(); MessageBox.Show(Resources.EmailSentThankYou); }
private void btnFile_Click(object sender, EventArgs e) { var selectedNode = treeViewFolders.SelectedNode; if (selectedNode == null) { labelInfoText.Text = Resources.SelectFolderFirst; return; } var folder = OutlookHelpers.GetFolderByName(selectedNode.Text); MainController.FileEmail(_item, folder.Name, true); Close(); }
/// <summary> /// Files item to folder and run learning if needed. /// </summary> /// <param name="item">Item to be moved</param> /// <param name="folder">Destination folder for item</param> /// <param name="learn">Re-learn model if true</param> public static void FileEmail(IOutlookItem item, string folder, bool learn) { try { var storeModel = _storeModels[item.GetStoreId()]; var destinationFolder = OutlookHelpers.GetFolderByName(folder); if (destinationFolder == null) { return; } item.Move(destinationFolder); var keyForResults = new Tuple <int, bool>(1, true); if (!_results.ContainsKey(keyForResults)) { _results.Add(keyForResults, new Result() { LearnerId = 1, WithBody = true }); } if (learn) { _results[keyForResults].IncrementMistakes(); if (BwForLearning.IsBusy) { _storesWaitingForUpdate.Add(storeModel); } else { object[] parameters = { new HashSet <StoreModel>() { storeModel } }; BwForLearning.RunWorkerAsync(parameters); } } else { _results[keyForResults].IncrementSuccess(); } } catch (System.Exception ex) { MyMessageBox.Show("Error when moving email to folder. Error: " + ex); } }
private void btnCreate_Click(object sender, EventArgs e) { var folderName = textBoxFolderName.Text; if (!string.IsNullOrWhiteSpace(folderName)) { Folder folder = OutlookHelpers.CreateFolder(_parentFolder, folderName); if (folder == null) { return; } if (checkBoxFile.Checked) { MainController.FileEmail(_item, folder.Name, true); } DialogResult = DialogResult.OK; Close(); } }
private void btnCreateFolder_Click(object sender, EventArgs e) { var selectedNode = treeViewFolders.SelectedNode; if (selectedNode == null) { labelInfoText.Text = Resources.SelectParentFirst; return; } var parentFolder = OutlookHelpers.GetFolderByName(selectedNode.Text); using (var wCreateFolder = new WindowCreateFolder(parentFolder, _item)) { var result = wCreateFolder.ShowDialog(); if (result == DialogResult.OK) { Close(); } } }
public WindowChooseFolder(Dictionary <string, double> results, IOutlookItem item) { InitializeComponent(); _item = item; PopulateTree(OutlookHelpers.GetListStores()); }
private void btnReport_Click(object sender, EventArgs e) { OutlookHelpers.SendEmail(Resources.FodlerErrorReport, textBoxText.Text); Close(); }