Назначение категорий элементу
В этом примере показано, как назначить категории элементу с помощью его свойства Categories.
Пример
Примечание.
Приведенный ниже пример кода взят из книги Программирование приложений для Microsoft Office Outlook 2007.
Чтобы назначить категории элементу, используйте специальное свойство Categories элемента. В этом примере кода используется вспомогательный класс OutlookItem, определенный в статье Создание вспомогательного класса для доступа к общим элементам Outlook, с помощью которого можно удобно вызвать свойство OutlookItem.Categories без необходимости сначала выполнять приведение элемента. Свойство Categories получает или задает категории, представленные в виде строки с разделителями-запятыми, которая может содержать не более 255 знаков. Запятые и пробелы используются для разделения значений категории. Назначение категории, не входящей в коллекцию Categories объекта NameSpace, приведет к тому, что категория не будет отображать цвет.
В следующем примере кода процедура AssignCategories создает ограничение для элементов с символами "ISV" в теме, сначала с помощью запроса DASL отфильтровывая в папке "Входящие" такие элементы. Затем AssignCategories проходит по отфильтрованным элементам с помощью класса OutlookItem и в том случае, если строка, возвращенная item.Categories, не является пустой ссылкой или не была назначена категории ISV, назначает категорию ISV этому элементу.
using Outlook = Microsoft.Office.Interop.Outlook;
private void AssignCategories()
{
string filter = "@SQL=" + "\"" + "urn:schemas:httpmail:subject"
+ "\"" + " ci_phrasematch 'ISV'";
Outlook.Items items =
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderInbox).Items.Restrict(filter);
for (int i = 1; i <= items.Count; i++)
{
OutlookItem item = new OutlookItem(items[i]);
string existingCategories = item.Categories;
if (String.IsNullOrEmpty(existingCategories))
{
item.Categories = "ISV";
}
else
{
if (item.Categories.Contains("ISV") == false)
{
item.Categories = existingCategories + ", ISV";
}
}
item.Save();
}
}