public ActionResult SystemRolesMain(DataAction ActionType, string guid, string selectEmail, string selectUserName, int pages = 1) { AspNetUsersDetailViewModel data = new AspNetUsersDetailViewModel(); if (ActionType == DataAction.Update) { data = _UserService.ReturnAspNetUsersDetail(ActionType, guid); } #region KeepSelectBlock TempData["Actions"] = ActionType; pages = pages == 0 ? 1 : pages; TempData["SystemRolesSelect"] = new SystemRolesViewModel() { Header = new SystemRolesListHeaderViewModel() { Email = selectEmail, UserName = selectUserName }, page = pages }; #endregion KeepSelectBlock return(View(data)); }
public void AspNetUsersDetailViewModelUpdate(AspNetUsersDetailViewModel viewModel, string CreateUser) { AspNetUsers AspNetUsers = new AspNetUsers(); var mapper = AutoMapperConfig.InitializeAutoMapper().CreateMapper(); AspNetUsers = mapper.Map <AspNetUsers>(viewModel); _AspNetUsersRep.AspNetUserUpdate(AspNetUsers, CreateUser); }
public AspNetUsersDetailViewModel ReturnAspNetUsersDetail(DataAction ActionType, string guid) { AspNetUsersDetailViewModel DetailViewModel = new AspNetUsersDetailViewModel(); AspNetUsers AspNetUsersViewModel = GetAspNetUsersById(guid); var mapper = AutoMapperConfig.InitializeAutoMapper().CreateMapper(); DetailViewModel = mapper.Map <AspNetUsersDetailViewModel>(AspNetUsersViewModel); //DetailViewModel = _aspnetMapping.MapperAspNetUsersDetailViewModel(AspNetUsersViewModel); return(DetailViewModel); }
public async Task <ActionResult> SystemRolesMain(AspNetUsersDetailViewModel AspNetUsersModel, DataAction actions) //, DataAction actions) //(FormCollection AspNetUsersModel,string guid) //, { bool boolResult = true; // 取決於導向頁面, True = 返回SystemRoles, False = 停在本頁 string thisUserID; //暫存 使用者ID SystemRolesViewModel searchBlock = (SystemRolesViewModel)TempData["SystemRolesSelect"]; // KeepSelectBlock SystemRolesKeepSelectBlock(searchBlock, actions); // STEP 1. 前端驗證是否通過 if (ModelState.IsValid) { // STEP 2. 建立容器 user var user = new ApplicationUser { UserName = AspNetUsersModel.UserName, Email = AspNetUsersModel.Email, PhoneNumber = AspNetUsersModel.PhoneNumber, UpdateTime = AspNetUsersModel.UpdateTime, CreateTime = AspNetUsersModel.CreateTime, UpdateUser = SignInManagerId, Status = true }; if (actions == DataAction.Create) { #region STEP 3. 判斷動作, [新增] user.CreateUser = SignInManagerId; user.Id = Guid.NewGuid().ToString().ToUpper(); _UserService.UserName = user.UserName; _UserService.UserEmail = user.Email; // STEP 4. 該使用者資訊是否存在資料庫, null才可繼續建立 if (_UserService.GetAspNetUserBySelectPramters() == null) { var result = await UserManager.CreateAsync(user, AspNetUsersModel.Password); if (result.Succeeded) { //建立使用者應要把 MenuTree 權限也寫入! _UserService.CreateUserMenuTree(user.Id); TempData["message"] = EnumHelper.GetEnumDescription(DataAction.CreateScuess); thisUserID = user.Id; // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // 傳送包含此連結的電子郵件 //string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "確認您的帳戶", "請按一下此連結確認您的帳戶 <a href=\"" + callbackUrl + "\">這裏</a>"); } else { // 建立失敗, 回傳錯誤訊息 AddErrors(result); boolResult = false; } } else { // 建立失敗, 回傳錯誤訊息 CustomerIdentityError(EnumHelper.GetEnumDescription(DataAction.CreateFailReapet)); boolResult = false; } #endregion STEP 3. 判斷動作, [新增] } else if (actions == DataAction.Update) { #region STEP 3. 判斷動作, [更新] if (!string.IsNullOrEmpty(AspNetUsersModel.Old_Password) && !string.IsNullOrEmpty(AspNetUsersModel.Password)) { bool passwordIsEdit = false; try { var checkPassword = UserManager.PasswordHasher. VerifyHashedPassword(AspNetUsersModel.Password, AspNetUsersModel.Old_Password); if (checkPassword != PasswordVerificationResult.Success) { passwordIsEdit = true; } } catch { passwordIsEdit = true; } if (passwordIsEdit) { user.Id = AspNetUsersModel.Id; // 變更密碼 var result = await UserManager. ChangePasswordAsync(user.Id, AspNetUsersModel.Old_Password, AspNetUsersModel.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); } else { // 建立失敗, 回傳錯誤訊息 AddErrors(result); boolResult = false; } } else { // 建立失敗, 回傳錯誤訊息 CustomerIdentityError(EnumHelper.GetEnumDescription(DataAction.UpdateFail)); boolResult = false; } } _UserService.AspNetUsersDetailViewModelUpdate(AspNetUsersModel, SignInManagerId); //可以批次增加同時輸入很多個Table _UserService.Save(); TempData["message"] = EnumHelper.GetEnumDescription(DataAction.UpdateScuess); #endregion STEP 3. 判斷動作, [更新] } else { string ErrorMsg = ""; foreach (var items in ModelState.Values) { foreach (ModelError Erroritem in items.Errors) { ErrorMsg += Erroritem.ErrorMessage + " "; } } CustomerIdentityError(ErrorMsg); boolResult = false; } if (boolResult) { return(RedirectToAction("SystemRoles", new { ViewModel = searchBlock, pages = searchBlock.page })); } } return(View(AspNetUsersModel)); }