public ActionResult AddMembershipUser(AdminMemberAddViewModel viewModel)
        {
            using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
            {
                var loggedOnUserId = LoggedOnReadOnlyUser?.Id ?? Guid.Empty;
                var admin          = MembershipService.Get(loggedOnUserId);
                var settings       = SettingsService.GetSettings();
                var homeRedirect   = false;

                var userToSave = new MembershipUser
                {
                    Email     = viewModel.Email,
                    FirstName = viewModel.FirstName,
                    LastName  = viewModel.LastName,
                    City      = viewModel.City,
                    State     = viewModel.State
                };
                var createStatus = MembershipService.AdminCreateUser(userToSave, admin);
                if (createStatus != MembershipCreateStatus.Success)
                {
                    ShowMessage(new AdminGenericMessageViewModel
                    {
                        Message     = "Failed registering user: "******"MembershipUser", "AdminMembershipUser", new { area = "Admin" }));
                    //ModelState.AddModelError(string.Empty, MembershipService.ErrorCodeToString(createStatus));
                }
                SetRegisterViewBagMessage(false, false, userToSave);
                homeRedirect = true;
                try
                {
                    // Only send the email if the admin is not manually authorising emails or it's pointless
                    //SendEmailConfirmationEmail(userToSave);
                    unitOfWork.Commit();

                    if (homeRedirect)
                    {
                        if (Url.IsLocalUrl(viewModel.ReturnUrl) && viewModel.ReturnUrl.Length > 1 && viewModel.ReturnUrl.StartsWith("/") &&
                            !viewModel.ReturnUrl.StartsWith("//") && !viewModel.ReturnUrl.StartsWith("/\\"))
                        {
                            return(Redirect(viewModel.ReturnUrl));
                        }
                        return(RedirectToAction("MembershipUser", "AdminMembershipUser", new { area = "Admin" }));
                    }
                }
                catch (Exception ex)
                {
                    unitOfWork.Rollback();
                    LoggingService.Error(ex);
                    FormsAuthentication.SignOut();
                    ShowMessage(new AdminGenericMessageViewModel
                    {
                        Message     = "Failed registering user.",
                        MessageType = GenericMessages.danger
                    });
                }
                return(RedirectToAction("Index", "Admin", new { area = "Admin" }));
            }
        }
        public ActionResult MembershipUser(int?p, string search)
        {
            var pageIndex = p ?? 1;

            var allMemberships = string.IsNullOrEmpty(search) ? MembershipService.GetAll(pageIndex, SiteConstants.Instance.AdminListPageSize) :
                                 MembershipService.SearchMembers(search, pageIndex, SiteConstants.Instance.AdminListPageSize);

            var listViewModel = new MembershipUserListViewModel
            {
                MembershipUsers = allMemberships,
                PageIndex       = pageIndex,
                TotalCount      = allMemberships.TotalCount,
                Search          = search,
                TotalPages      = allMemberships.TotalPages
            };

            StatesViewModel statesViewModel = new StatesViewModel()
            {
                allStates = SettingsService.ListOfStates().ToList()
            };

            var user           = MembershipService.CreateEmptyUser();
            var adminViewModel = new AdminMemberAddViewModel
            {
                Email     = user.Email,
                AllRoles  = RoleService.AllRoles(),
                FirstName = user.FirstName,
                LastName  = user.LastName
            };

            adminViewModel._stateViewModel = statesViewModel;

            var viewModel = new MembershipUserViewModel
            {
                _listViewModel           = listViewModel,
                _adminMemberAddViewModel = adminViewModel
            };

            return(View(viewModel));
        }