public ActionResult Create()
        {
            var viewModel = new AdminCreateMemberViewModel
            {
                Roles = GetRolesEdit(),
            };

            // See if a return url is present or not and add it
            var returnUrl = Request["ReturnUrl"];

            if (!string.IsNullOrEmpty(returnUrl))
            {
                viewModel.ReturnUrl = returnUrl;
            }

            return(View(viewModel));
        }
        public ActionResult Create(AdminCreateMemberViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                // Check User exits
                if (MembershipService.GetUser(viewModel.UserName) != null)
                {
                    ModelState.AddModelError("UserName", "Tên tài khoản đã tồn tại! Hãy chọn tên khác");
                    return(View(viewModel));
                }

                // Check password is match
                if (viewModel.Password != viewModel.Password2)
                {
                    ModelState.AddModelError("Password2", "Nhập lại mật khẩu mới không khớp");
                    return(View(viewModel));
                }

                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    try
                    {
                        var user = new MembershipUser
                        {
                            UserName   = viewModel.UserName,
                            Password   = viewModel.Password,
                            Email      = viewModel.Email,
                            Avatar     = viewModel.Avatar,
                            IsApproved = true,
                        };

                        //var Roles = GetRolesEdit();


                        var createStatus = MembershipService.NewUser(user);
                        if (createStatus != MembershipCreateStatus.Success)
                        {
                            ModelState.AddModelError(string.Empty, MembershipService.ErrorCodeToString(createStatus));
                            return(View(viewModel));
                        }

                        if (viewModel.Roles != null)
                        {
                            foreach (var it in viewModel.Roles)
                            {
                                if (!it.Check)
                                {
                                    continue;
                                }

                                it.RoleName = _roleSevice.GetRoleNameById(it.RoleId);
                                if (it.RoleName == AppConstants.AdminRoleName && !LoginRequest.IsSuperAccount())
                                {
                                    continue;
                                }
                                if (it.RoleName == AppConstants.GuestRoleName || it.RoleName == AppConstants.StandardRoleName)
                                {
                                    continue;
                                }


                                MembershipService.AddRoleByUser(user.Id, it.RoleId);
                            }
                        }


                        unitOfWork.Commit();

                        TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                        {
                            Message     = LocalizationService.GetResourceString("Tạo mới tài khoản thành công."),
                            MessageType = GenericMessages.success
                        };

                        if (Url.IsLocalUrl(viewModel.ReturnUrl) && viewModel.ReturnUrl.Length > 1 && viewModel.ReturnUrl.StartsWith("/") &&
                            !viewModel.ReturnUrl.StartsWith("//") && !viewModel.ReturnUrl.StartsWith("/\\"))
                        {
                            return(Redirect(viewModel.ReturnUrl));
                        }
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception ex)
                    {
                        LoggingService.Error(ex);
                        unitOfWork.Rollback();

                        ModelState.AddModelError("", "Có lỗi không mong muốn xảy ra! Xin thử lại.");
                    }
                }
            }

            return(View(viewModel));
        }