Я борюсь с AfterProperties SharePoint 2007.У меня есть поле ввода людей, в которое можно добавить несколько человек.
В событии ItemUpdating мне нужно определить, какие пользователи были добавлены, удалены или остались теми же.
К сожалению, это становитсяВыйти трудно, так как идентификатор пользователя, которого нетронуты, превращается в -1 в AfterProperties, так что я не могу использовать SPFieldUserValueCollection для поиска пользователя.
Пример.properties.ListItem ["AssignedTo"]. ToString () показывает:
1; #domain \ user1; # 2; #domain \ user2
properties.AfterProperties ["AssignedTo"]. ToString() показывает:
-1; #domain \ user1; # - 1; #domain \ user2; # 3; #domain \ user3 <-Добавил пользователя </p>
Я планировал использовать следующеекод для определения удаленных и добавленных пользователей:
foreach (SPFieldUserValue oldUser in oldUserCollection)
{
if (newUserCollection.Find(x => x.LookupId == oldUser.LookupId) == null)
{
RemoveRole(aListItem, oldUser.User, roleDefCollection[workerRoleName]);
}
}
foreach (SPFieldUserValue newUser in newUserCollection)
{
if(oldUserCollection.Find(x => x.User.LoginName == newUser.LookupValue) == null)
{
AddRole(aListItem, newUser.User, roleDefCollection[workerRoleName]);
}
}
Как мне архивировать, чтобы AfterProperties показывал правильный lookupid?