Я использую API Tridion.OutboundEmail.ContentManagement для извлечения и управления контактными данными.
Получение контактов работает нормально, равно как и откат словаря ExtendedDetails, но набор ключевых слов TcmUriCollection всегда пуст.
[Test]
public void GetContacts_via_address_book()
{
var uri = new TcmUri(101, 2, TcmItemTypes.StaticAddressBook);
var addressBook = new StaticAddressBook(uri);
var contacts = addressBook.GetContacts();
foreach (var contact in contacts)
{
var firstName = contact.ExtendedDetails["NAME"].StringValue;
Assert.That(contact.EmailAddress, Is.Not.Empty); // PASS
Assert.That(firstName, Is.Not.Empty); // PASS
Assert.That(contact.Keywords.Count, Is.GreaterThan(0)); // FAIL
}
}
Я также попробовал следующий метод:
[Test]
public void GetContacts_via_filter()
{
var uri = new TcmUri(101, 2, TcmItemTypes.StaticAddressBook);
var addressBook = new StaticAddressBook(uri);
var filter = new ContactFilter(UserContext.Current);
var contacts = Contact.GetContacts(filter, addressBook);
foreach (var contact in contacts)
{
var firstName = contact.ExtendedDetails["NAME"].StringValue;
Assert.That(contact.EmailAddress, Is.Not.Empty); // PASS
Assert.That(firstName, Is.Not.Empty); // PASS
Assert.That(contact.Keywords.Count, Is.GreaterThan(0)); // FAIL
}
}
Я даже могу добавить ключевое слово в коллекцию ключевых слов контакта и сохранить его, и оно правильно отображается в Tridion, но когдаЯ снова получаю тот же контакт, коллекция снова пуста.
Кто-нибудь имеет опыт работы с этим API и / или знает, в чем проблема?