Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public ActionResult SystemRoles(SystemRolesViewModel ViewModel, int page = 1)
        {
            SystemRolesViewModel ResultViewModel = _UserService.GetSystemRolesListViewModel(ViewModel.Header);

            SystemRolesKeepSelectBlock(ResultViewModel, DataAction.Read);
            return(View(ResultViewModel));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets the system roles ListView model.
        /// </summary>
        /// <param name="selectModel">The select model.</param>
        /// <param name="nowpage">The nowpage.</param>
        /// <returns></returns>
        public SystemRolesViewModel GetSystemRolesListViewModel(SystemRolesListHeaderViewModel selectModel, int nowpage = 1)
        {
            SystemRolesViewModel returnSystemRolesListViewModel = new SystemRolesViewModel();

            returnSystemRolesListViewModel.Header = selectModel; /*表頭*/
            returnSystemRolesListViewModel.page   = nowpage;
            IEnumerable <SystemRolesListContentViewModel> GetAllSystemRolesListViewModelResult = GetAllSystemRolesListViewModel(selectModel);
            int currentPage = (nowpage < 1) && GetAllSystemRolesListViewModelResult.Count() >= 1 ? 1 : nowpage;

            returnSystemRolesListViewModel.Content_List = GetAllSystemRolesListViewModelResult.ToPagedList(currentPage, pageSize);/*內容*/
            return(returnSystemRolesListViewModel);
        }
Exemplo n.º 4
0
        public ActionResult SystemRoles(int page = 1)
        {
            SystemRolesViewModel ResultViewModel;
            SystemRolesViewModel searchBlock = (SystemRolesViewModel)TempData["SystemRolesSelect"];

            if (searchBlock == null) /*空*/
            {
                ResultViewModel = _UserService.GetSystemRolesListViewModel(new SystemRolesListHeaderViewModel(), page);
            }
            else
            {
                ResultViewModel = _UserService.GetSystemRolesListViewModel(searchBlock.Header,
                                                                           page > searchBlock.page ?
                                                                           page : searchBlock.page);
                SystemRolesKeepSelectBlock(ResultViewModel, DataAction.Read);
            }

            return(View(ResultViewModel));
        }
Exemplo n.º 5
0
 /// <summary>
 /// 保留搜尋頁面資料_管理者SystemRoles
 /// </summary>
 /// <param name="searchBlock"></param>
 /// <param name="actions"></param>
 private void SystemRolesKeepSelectBlock(SystemRolesViewModel searchBlock, DataAction actions)
 {
     TempData["Actions"]           = actions;
     TempData["SystemRolesSelect"] = searchBlock;
 }
Exemplo n.º 6
0
        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));
        }