/// <summary> /// Creates new invitation to group. Called when the "Add member to group" button is pressed. /// Expects the CreateGroup method to be run first. /// </summary> private bool CreateInvitation() { // Get the group GroupInfo group = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName); if (group != null) { // Create new invitation InvitationInfo newInvitation = new InvitationInfo(); // Set properties newInvitation.InvitationComment = "Invitation created by API example."; newInvitation.InvitationGroupID = group.GroupID; newInvitation.InvitationUserEmail = "*****@*****.**"; newInvitation.InvitedByUserID = CMSContext.CurrentUser.UserID; newInvitation.InvitationCreated = DateTime.Now; newInvitation.InvitationValidTo = DateTime.Now.AddDays(1); // Save object InvitationInfoProvider.SetInvitationInfo(newInvitation); return(true); } return(false); }
/// <summary> /// Creates invitation for specified user. /// </summary> /// <param name="groupInfo">Inviting group</param> /// <param name="invitedUser">User info</param> private InvitationInfo InviteUser(GroupInfo groupInfo, UserInfo invitedUser) { // Check whether group exists if (groupInfo == null) { return(null); } int userId = (invitedUser != null) ? invitedUser.UserID : 0; int currentUserId = MembershipContext.AuthenticatedUser.UserID; // User cannot invite herself if (userId == currentUserId) { return(null); } // Check whether user is in group or is invited if ((!GroupMemberInfoProvider.IsMemberOfGroup(userId, Group.GroupID) && !InvitationInfoProvider.InvitationExists(userId, Group.GroupID)) || radNewUser.Checked) { // Create new info object var invitation = new InvitationInfo { InvitationComment = txtComment.Text, InvitationCreated = DateTime.Now, InvitationGroupID = GroupID, InvitationGUID = new Guid(), InvitationLastModified = DateTime.Now, InvitedByUserID = currentUserId }; // Create 'Valid to' value if set in settings var validTo = SettingsKeyInfoProvider.GetIntValue(SiteContext.CurrentSiteName + ".CMSInvitationValidity"); if (validTo > 0) { invitation.InvitationValidTo = DateTime.Now.AddDays(validTo); } if (radSiteMember.Checked) { invitation.InvitedUserID = userId; } else { invitation.InvitationUserEmail = txtEmail.Text; } InvitationInfoProvider.SetInvitationInfo(invitation); return(invitation); } return(null); }