Hallo,
Ik probeerde lopend de code en werk boete met toegewezen en niet-toegewezen gebruiker.
Gelieve te verbinden debugger (band aan w3wp.exe) in Visuele Studio om de kwestie te zuiveren.
Hierbij de code, hebben wij gebruikt -
openbare opheffing nietige ItemUpdating (eigenschappen SPItemEventProperties)
{
base.ItemUpdating (eigenschappen);
als (ware properties.ListTitle.Equals (DocumentLibararyType.Tasks , StringComparison.InvariantCultureIgnoreCase) ==)
{
De plaats van SPWeb = verklaart nietig;
probeer
{
SPListItem spItem = properties.ListItem;
plaats = properties.OpenWeb ();
SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
SPUser spCurrentUser = site.CurrentUser;
koord strStatus = spItem [ItemFiledType.Status] .ToString ();
int. intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf („#“);
koord spAssignedTo = spItem [ItemFiledType.AssignedTo] .ToString (). Verwijder (0, intIndex + 1);
koord spCurrentUserLoginName = site.CurrentUser.LoginName;
koord spCurrentUserName = site.CurrentUser.Name; // voegde toe om te zien of „Toegewezen aan“ is zelfde zoals naam van huidige gebruiker.
bool blnAllowUpdate = vals;
als (valse spCurrentUserLoginName.Equals („sharepoint \ \ systeem“, StringComparison.InvariantCultureIgnoreCase) ==)
{
foreach (SPGroup spg in spCurrentUser.Groups)
{
als (site.AssociatedOwnerGroup ! = verklaar) nietig
{
als (spg. Name.CompareTo (site.AssociatedOwnerGroup.Name) == 0)
{
als (ware strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==)
{
// dit is het bericht dat wij aan de gebruiker zouden willen tonen
// als he/she probeert om een actieve taak bij te werken
properties.ErrorMessage = de „Taak wordt reeds voltooid en kan niet nu worden bijgewerkt. “;
//// Deze lijn annuleert eigenlijk de schrapping
eigenschappen. Annuleer = waar;
}
anders
{
blnAllowUpdate = waar;
}
}
}
}
// als de taakstatus Volledig is het is meer geen actieve taak
// annuleren wij anders de schrapping
// als (strStatus! = „Voltooide“ strStatus &&! = strStatus van de „Productie“ &&! = „Ontkende Goedkeuring“)
als (blnAllowUpdate valse ==)
{
// „spAssignedTo.CompareTo (spCurrentUserName)! = 0“ deze die voorwaarde wordt toegevoegd om te zien of „Toegewezen aan“ is zelfde zoals naam van huidige gebruiker.
als ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
(valse strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==))
{
// dit is het bericht dat wij aan de gebruiker zouden willen tonen
// als he/she probeert om een actieve taak bij te werken
properties.ErrorMessage = „Dit punt is nog lopend en kan slechts door de schepper van het punt worden bijgewerkt. “;
//// Deze lijn annuleert eigenlijk de schrapping
eigenschappen. Annuleer = waar;
}
als anders (ware strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==)
{
// dit is het bericht dat wij aan de gebruiker zouden willen tonen
// als he/she probeert om een actieve taak te schrappen
properties.ErrorMessage = de „Taak wordt reeds voltooid en kan niet nu worden bijgewerkt. “;
//// Deze lijn annuleert eigenlijk de schrapping
eigenschappen. Annuleer = waar;
}
}
}
}
vangst (ex Uitzondering)
{
properties.ErrorMessage = een „Interne fout kwam terwijl het doen van actie“ + Environment.NewLine + voor
ex. Message.ToString ();
eigenschappen. Annuleer = waar;
}
}
}
Ik hoop, helpt het.
Juicht… toe
Rajendra