Пример #1
0
        public ActionResult Details(TeamMemberViewModel teamMemberViewModel, bool accessAllAreas = false, Guid uniqueId = default(Guid))
        {
            var teamMember = teamMemberViewModel.TeamMember;

            teamMember.UniqueId  = uniqueId;
            teamMember.CompanyId = CompanyId;
            ListHelper.InitializeAreas(CurrentUser);
            if (uniqueId == Guid.Empty)
            {
                try
                {
                    if (teamMember.AccessibleAreaIds == null && accessAllAreas)
                    {
                        // give access to all areas if none specified (ie, via wizard)
                        ListHelper.InitializeAreas(CurrentUser);
                        teamMember.AccessibleAreaIds = ListHelper.GetAreas().Select(x => x.Id).ToArray();
                    }
                    var registrationUrl = Url.Action("Register", "Account", new { inviteCode = "INVITE_CODE", email = "INVITE_EMAIL" });
                    _companyManager.AddTeamMember(teamMember, teamMemberViewModel.WelcomeMessage, User.Identity.GetUserName(), registrationUrl);
                    this.SetNotificationMessage(NotificationType.Success, teamMember.Email + " successfully invited.");
                    return(Json(new { success = true }));
                }
                catch (Exception ex)
                {
                    return(Json(new { success = false, error = ex.Message }));
                }
            }
            try
            {
                _companyManager.SaveTeamMember(teamMember);
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, error = ex.Message }));
            }

            string areaListString = ListHelper.AreaIdsToString(teamMember.AccessibleAreaIds, ConfigUtil.AreaListMaxCharsForTableDisplay);

            return(Json(new { success = true, teamMember, areaListString }));
        }