/// <summary>
        /// Get the Outlook category name for a given category colour.
        /// If category not yet used, new one added of the form "OGCS [colour]"
        /// </summary>
        /// <param name="olCategory">The Outlook category to search by</param>
        /// <param name="categoryName">Optional: The Outlook category name to also search by</param>
        /// <returns>The matching category name</returns>
        public String FindName(Outlook.OlCategoryColor olCategory, String categoryName = null)
        {
            if (olCategory == Outlook.OlCategoryColor.olCategoryColorNone)
            {
                return("");
            }

            Outlook.Category failSafeCategory = null;
            foreach (Outlook.Category category in this.categories)
            {
                if (category.Color == olCategory)
                {
                    if (categoryName == null)
                    {
                        if (category.Name.StartsWith("OGCS "))
                        {
                            return(category.Name);
                        }
                    }
                    else
                    {
                        if (category.Name == categoryName)
                        {
                            return(category.Name);
                        }
                        if (category.Name.StartsWith("OGCS "))
                        {
                            failSafeCategory = category;
                        }
                    }
                }
            }

            if (failSafeCategory != null)
            {
                log.Warn("Failed to find Outlook category " + olCategory.ToString() + " with name '" + categoryName + "'");
                log.Debug("Using category with name \"" + failSafeCategory.Name + "\" instead.");
                return(failSafeCategory.Name);
            }

            log.Debug("Did not find Outlook category " + olCategory.ToString() + (categoryName == null ? "" : " \"" + categoryName + "\""));
            Outlook.Category newCategory = categories.Add("OGCS " + FriendlyCategoryName(olCategory), olCategory);
            log.Info("Added new Outlook category \"" + newCategory.Name + "\" for " + newCategory.Color.ToString());
            return(newCategory.Name);
        }
Ejemplo n.º 2
0
 private void btnEval_Click(object sender, EventArgs e)
 {
     try
     {
         Outlook.OlCategoryColor color = Utils.GetOutlookColorFromRgb("#FF" + txtInput.Text.Trim());
         lblResult.Text = color.ToString();
         //lblResult.BackColor = Utils.OutlookColorsRgb[color];
     }
     catch (Exception)
     {
     }
 }
 public static String FriendlyCategoryName(Outlook.OlCategoryColor olCategory)
 {
     return(olCategory.ToString().Replace("olCategoryColor", "").Replace("Dark", "Dark "));
 }