Example #1
0
 private void btnOptions_Click(object sender, RibbonControlEventArgs e)
 {
     using (var options = new WindowOptions(OutlookHelpers.GetDictionaryStores()))
     {
         options.ShowDialog();
     }
 }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
 public string[] GetInput()
 {
     return(new[]
     {
         "meeting",
         _item.SenderEmailAddress ?? "",
         _item.SenderName ?? "",
         OutlookHelpers.GetDomainFromEmail(_item.SenderEmailAddress)
     });
 }
Example #5
0
 private void PopulateTree(List <Store> stores)
 {
     treeViewFolders.BeginUpdate();
     foreach (Store store in stores)
     {
         treeViewFolders.Nodes.Add(OutlookHelpers.CreateTreeNodeForStore(store));
     }
     treeViewFolders.Sort();
     treeViewFolders.EndUpdate();
 }
Example #6
0
 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);
 }
Example #7
0
 /// <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);
 }
Example #8
0
        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);
        }
Example #9
0
        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();
        }
Example #10
0
 /// <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);
     }
 }
Example #11
0
        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();
            }
        }
Example #12
0
        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();
                }
            }
        }
Example #13
0
 public WindowChooseFolder(Dictionary <string, double> results, IOutlookItem item)
 {
     InitializeComponent();
     _item = item;
     PopulateTree(OutlookHelpers.GetListStores());
 }
Example #14
0
 private void btnReport_Click(object sender, EventArgs e)
 {
     OutlookHelpers.SendEmail(Resources.FodlerErrorReport, textBoxText.Text);
     Close();
 }