Cześć,
I próbować the kod i pracować świetnie z wyznaczać i non-wyznaczać użytkownik.
Zadawalać attach the debugger (attach w3wp.exe) w Wizualny Studio debug the zagadnienie.
Używać the kod, my używać -
jawny override pustka ItemUpdating (SPItemEventProperties własność)
{
base.ItemUpdating (własność);
jeżeli (properties.ListTitle.Equals (DocumentLibararyType.Tasks, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
{
SPWeb miejsce = null;
próba
{
SPListItem spItem = properties.ListItem;
miejsce = properties.OpenWeb ();
SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
SPUser spCurrentUser = site.CurrentUser;
smyczkowy strStatus = spItem [ItemFiledType.Status] .ToString ();
int intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf ("#");
smyczkowy spAssignedTo = spItem [ItemFiledType.AssignedTo] .ToString (). Usuwać ((0), intIndex + 1);
zawiązywać spCurrentUserLoginName = site.CurrentUser.LoginName;
zawiązywać spCurrentUserName = site.CurrentUser.Name; // dodawać jeżeli "Wyznaczać" być użytkownik imię aktualny użytkownik.
bool blnAllowUpdate = fałszywy;
jeżeli (spCurrentUserLoginName.Equals ("sharepoint \ \ system", StringComparison.InvariantCultureIgnoreCase) == fałszywy)
{
foreach (SPGroup spg w spCurrentUser.Groups)
{
jeżeli (site.AssociatedOwnerGroup ! = null)
{
jeżeli (spg. Name.CompareTo (site.AssociatedOwnerGroup.Name) == (0))
{
jeżeli (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
{
// Użytkownik być the wiadomość który my polubić the użytkownik
// jeżeli on/ona próbować aktywny zadanie
properties.ErrorMessage = "Zadanie już uzupełniać i móc aktualizować teraz. ";
//// Ten linia właściwie odwoływać the deleatur
własność. Odwoływać = true;
}
inny
{
blnAllowUpdate = true;
}
}
}
}
// Jeżeli the zadanie status być Zupełny ono być aktywny zadanie wcale zadanie
// Inaczej my odwoływać the skasowanie
// jeżeli (strStatus! = "Uzupełniać" && strStatus! = "Produkcja" && strStatus! = "Zatwierdzenie Zaprzeczać")
jeżeli (blnAllowUpdate == fałszywy)
{
// "spAssignedTo.CompareTo (spCurrentUserName)! = (0)" ten warunek dodawać jeżeli "Wyznaczać" być (0) imię aktualny użytkownik.
jeżeli ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = (0) && spAssignedTo.CompareTo (spCurrentUserName)! = (0)) &&
(strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == fałszywy))
{
// Użytkownik być the wiadomość który my polubić the użytkownik
// jeżeli on/ona próbować aktywny zadanie
properties.ErrorMessage = "Ten rzecz być wciąż w toku i móc tylko aktualizować the twórca the rzecz. ";
//// Ten linia właściwie odwoływać the deleatur
własność. Odwoływać = true;
}
inny jeżeli (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
{
// Użytkownik być the wiadomość który my polubić the użytkownik
// jeżeli on/ona próbować aktywny zadanie
properties.ErrorMessage = "Zadanie już uzupełniać i móc aktualizować teraz. ";
//// Ten linia właściwie odwoływać the deleatur
własność. Odwoływać = true;
}
}
}
}
łapać (Wyjątek wyjątek)
{
properties.ErrorMessage = "Wewnętrzny błąd zdarzać się podczas gdy robić akcja" + Environment.NewLine +
message.ToString. Message.ToString ();
własność. Odwoływać = true;
}
}
}
I mieć nadzieję, ono pomagać.
Otucha…
Rajendra