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)); }