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

}