Добрый день,
В перехватчике имеется рабочий скрипт, с помощью которого мы фиксируем изменение конкретного свойства объекта IContactConfigExt, к примеру "Name"
public override void OnPostUpdate(PostUpdateEvent @event)
{
if (@event.Entity is IContactConfigExt)
{
var name = Array.IndexOf(@event.Persister.PropertyNames, "Name");
var phone = Array.IndexOf(@event.Persister.PropertyNames, "Phone");
var email = Array.IndexOf(@event.Persister.PropertyNames, "Email");
if ((string)@event.OldState[name] != (string)@event.State[name])
//Скрипт который нужно выполнить при изменении "Name"
// if ((???)@event.OldState[phone] != (???)@event.State[phone])
// //Скрипт который нужно выполнить при изменении "Phone"
}
return;
}
Появилась необходимость выполнять скрипт, если была добавлена, изменена или удалена какая-либо запись из списка телефонов и email-адресов контакта. Для этого нужно объявить тип переменной в скобках:
(???)@event.State[phone]
Для примера еще, так объявляется переменная "StatusOfUpload" типа перечисление
(EleWise.ELMA.ConfigurationModel.StatusOfUpload)@event.OldState[status]
Пробовал так (ISet<EleWise.ELMA.CRM.Models<IPhone>) - не подошло
Собственно вопрос: как объявить эти переменные?
Есть подозрение, что перехватить изменение списка объектов в принципе невозможно. В таком случае можно повесить перехватчик на сам объект Phone или Email, но тогда как понять с каким объектом они связанны?