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();
            }
        }
Пример #2
0
        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();
        }
Пример #4
0
        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");
        }