protected void Page_Load(object sender, EventArgs e) { if (!WorkBox.CurrentUserIsOwner() && !WorkBox.CurrentUserIsBusinessAdmin() && !WorkBox.CurrentUserIsSystemAdmin()) { ErrorText.Text = "Only owners or admin can invite individuals to have access to a work box."; return; } if (!IsPostBack) { WorkBoxTitle.Text = WorkBox.Title; InviteType.SelectedValue = "Involved"; CurrentlySelectedValue.Value = "Involved"; SendInviteEmail.Checked = true; SendAsOne.Checked = true; CCToYou.Checked = true; EmailSubject.Text = WorkBox.Template.InviteInvolvedUserEmailSubject; EmailBody.Text = WorkBox.Template.InviteInvolvedUserEmailBody; OtherEmailSubject.Value = WorkBox.Template.InviteVisitingUserEmailSubject; OtherEmailBody.Value = WorkBox.Template.InviteVisitingUserEmailBody; IndividualsToInviteControl.Focus(); DisposeWorkBox(); } }
protected void Page_Load(object sender, EventArgs e) { teams = WBTaxonomy.GetTeams(SPContext.Current.Site); team = WBTeam.GetFromTeamSite(teams, SPContext.Current); if (team == null) { ErrorText.Text = "You do not appear to be viewing this form while on a team site."; return; } if (!team.IsCurrentUserTeamOwnerOrSystemAdmin()) { ErrorText.Text = "Only team owners or system admin can invite individuals to a team."; return; } if (!IsPostBack) { TeamName.Text = team.Name; InviteAsMember.Checked = true; InviteAsOwner.Checked = false; SendInviteEmail.Checked = true; SendAsOne.Checked = true; CCToYou.Checked = true; EmailSubject.Text = WBFarm.Local.InviteToTeamDefaultEmailSubject; EmailBody.Text = WBFarm.Local.InviteToTeamDefaultEmailBody; IndividualsToInviteControl.Focus(); } }
protected void inviteButton_OnClick(object sender, EventArgs e) { List <SPUser> newUsers = IndividualsToInviteControl.WBxGetMultiResolvedUsers(SPContext.Current.Web); if (newUsers.Count == 0) { IndividualsToInviteFieldMessage.Text = "You must enter at least one individual to invite."; return; } List <String> newUsersNames = new List <String>(); foreach (SPUser user in newUsers) { newUsersNames.Add(user.Name); } String newUsersString = String.Join(", ", newUsersNames.ToArray()); if (InviteType.SelectedValue == "Involved") { List <SPUser> involvedUsers = WorkBox.InvolvedIndividuals; involvedUsers.AddRange(newUsers); WorkBox.InvolvedIndividuals = involvedUsers; WorkBox.AuditLogEntry("Invited individuals", "Involved: " + newUsersString); WorkBox.Update(); } else { List <SPUser> visitingUsers = WorkBox.VisitingIndividuals; visitingUsers.AddRange(newUsers); WorkBox.VisitingIndividuals = visitingUsers; WorkBox.AuditLogEntry("Invited individuals", "Visiting: " + newUsersString); WorkBox.Update(); } if (SendInviteEmail.Checked) { String subjectTemplate = EmailSubject.Text; String bodyTemplate = EmailBody.Text; if (SendAsOne.Checked) { StringDictionary headers = new StringDictionary(); List <String> emailAddresses = new List <String>(); foreach (SPUser user in newUsers) { emailAddresses.Add(user.Email); } headers.Add("to", String.Join(";", emailAddresses.ToArray())); headers.Add("content-type", "text/html"); //This is the default type, so isn't neccessary. if (CCToYou.Checked) { headers.Add("cc", SPContext.Current.Web.CurrentUser.Email); } String subject = WBUtils.ProcessEmailTemplate(WorkBox, subjectTemplate, false); String body = WBUtils.ProcessEmailTemplate(WorkBox, bodyTemplate, true); headers.Add("subject", subject); WBUtils.SendEmail(SPContext.Current.Web, headers, body); } else { foreach (SPUser user in newUsers) { StringDictionary headers = new StringDictionary(); headers.Add("to", user.Email); headers.Add("content-type", "text/html"); //This is the default type, so isn't neccessary. if (CCToYou.Checked) { headers.Add("cc", SPContext.Current.Web.CurrentUser.Email); } String subject = WBUtils.ProcessEmailTemplate(WorkBox, null, user, subjectTemplate, false); String body = WBUtils.ProcessEmailTemplate(WorkBox, null, user, bodyTemplate, true); headers.Add("subject", subject); WBUtils.SendEmail(SPContext.Current.Web, headers, body); } } } DisposeWorkBox(); CloseDialogAndRefresh(); }
protected void inviteButton_OnClick(object sender, EventArgs e) { List <SPUser> newUsers = IndividualsToInviteControl.WBxGetMultiResolvedUsers(SPContext.Current.Web); if (newUsers.Count == 0) { IndividualsToInviteFieldMessage.Text = "You must enter at least one individual to invite."; return; } List <String> newUsersNames = new List <String>(); foreach (SPUser user in newUsers) { newUsersNames.Add(user.Name); } String newUsersString = String.Join(", ", newUsersNames.ToArray()); if (!InviteAsMember.Checked && !InviteAsOwner.Checked) { ErrorText.Text = "You didn't select to invite as either a member or as an owner!"; return; } String roleInTeam = ""; if (InviteAsMember.Checked) { team.AddMembers(SPContext.Current.Site, newUsers); roleInTeam = "team member"; } if (InviteAsOwner.Checked) { team.AddOwners(SPContext.Current.Site, newUsers); if (String.IsNullOrEmpty(roleInTeam)) { roleInTeam = "team owner"; } else { roleInTeam += " and team owner"; } } Dictionary <String, String> textForTokens = new Dictionary <String, String>(); textForTokens.Add("[ROLE_WITHIN_TEAM]", roleInTeam); if (SendInviteEmail.Checked) { String subjectTemplate = EmailSubject.Text; String bodyTemplate = EmailBody.Text; if (SendAsOne.Checked) { StringDictionary headers = new StringDictionary(); List <String> emailAddresses = new List <String>(); foreach (SPUser user in newUsers) { emailAddresses.Add(user.Email); } headers.Add("to", String.Join(";", emailAddresses.ToArray())); headers.Add("content-type", "text/html"); //This is the default type, so isn't neccessary. if (CCToYou.Checked) { headers.Add("cc", SPContext.Current.Web.CurrentUser.Email); } String subject = WBUtils.ProcessEmailTemplate(textForTokens, null, team, null, subjectTemplate, false); String body = WBUtils.ProcessEmailTemplate(textForTokens, null, team, null, bodyTemplate, true); headers.Add("subject", subject); WBUtils.SendEmail(SPContext.Current.Web, headers, body); } else { foreach (SPUser user in newUsers) { StringDictionary headers = new StringDictionary(); headers.Add("to", user.Email); headers.Add("content-type", "text/html"); //This is the default type, so isn't neccessary. if (CCToYou.Checked) { headers.Add("cc", SPContext.Current.Web.CurrentUser.Email); } String subject = WBUtils.ProcessEmailTemplate(textForTokens, null, team, user, subjectTemplate, false); String body = WBUtils.ProcessEmailTemplate(textForTokens, null, team, user, bodyTemplate, true); headers.Add("subject", subject); WBUtils.SendEmail(SPContext.Current.Web, headers, body); } } } CloseDialogAndRefresh("?panel=TeamDetails"); }