SPWebApplication g_WebApp;
SPWeb g_Web;
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite
site = new SPSite(“<siteUrl>”);
//siteName
= "Payroll";
g_Web = site.OpenWeb(“<siteName>”);
g_WebApp = g_Web.Site.WebApplication;
g_WebApp.FormDigestSettings.Enabled
= true;
g_Web.AllowUnsafeUpdates = true;
SPUser
user = g_Web.AllUsers[“<username>”];
SPMember
member = g_Web.SiteUsers[“<requestedBy>”];
if
(user != null)
{
SPGroupCollection grpCollection = g_Web.SiteGroups;
bool isExists = IsGroupExists(grpCollection,
“GroupName”);
if (!isExists && “Add” == Action.Add)
{
g_Web.SiteGroups.Add(“GroupName”, member,
user,
Constants.Messages.DESCRIPTION);
g_Web.AssociatedGroups.Add(g_Web.SiteGroups
[“GroupName”]);
g_Web.Update();
SPRoleAssignment assignment = new SPRoleAssignment(
g_Web.SiteGroups[“GroupName”]);
SPRoleDefinition _role = g_Web.RoleDefinitions
[Constants.PermissionLevel.CONTRIBUTE];
assignment.RoleDefinitionBindings.Add(_role);
g_Web.RoleAssignments.Add(assignment);
}
else
{
SPGroup
group = g_Web.SiteGroups[“GroupName”];
if (group != null)
{
if (“Add”.Equals(Action.Add))
{
group.AddUser(user);
}
else if (“Remove”.Equals(Action.Remove))
{
group.RemoveUser(user);
}
group.Update();
}
}
}
}
}
g_Web.Update();
g_WebApp.FormDigestSettings.Enabled
= true;
});
}
catch
{
throw;
}
finally
{
g_Web.AllowUnsafeUpdates = false;
}
private bool IsGroupExists(SPGroupCollection
grpCollection,
string groupName)
{
bool
isExists = false;
foreach
(SPGroup group in
grpCollection)
{
if
(group.Name.Equals(groupName))
{
isExists = true;
break;
}
}
return
isExists;
}
}
public enum Action
{
Add,
Remove
}