public ActionResult SelectDepartment(DepartmentSelectInputModel inputModel) { // 入力エラーがない場合 if (this.ModelState.IsValid) { // 所属選択 UserInfoModel userInfoModel = this._ControllerSupport.InvokeServiceAndSetMessage( _DepartmentService, m => m.SelectDepartment(inputModel), this._SessionManager.GetUserInfoModel(), string.Empty); if (_DepartmentService.ServiceMessage.IsValid) { // 成功時の処理 // 所属選択後のユーザー情報をセッションに格納する this._SessionManager.SetUserInfoModel(userInfoModel); // Top画面にリダイレクトする return(RedirectToAction("Index", "Top", null)); } } // エラー時 // モデルステートを引き継ぎ、初期表示にリダイレクトする this._ControllerSupport.SaveMessageForRedirect(); return(RedirectToAction("Index")); }
/// <summary> /// 所属選択 /// </summary> /// <param name="inputModel"></param> /// <returns>所属選択後のユーザー情報</returns> public UserInfoModel SelectDepartment(DepartmentSelectInputModel inputModel) { // ユーザー情報をコピーする UserInfoModel userInfoModel = new UserInfoModel(); userInfoModel.UserDepartmentList = new List<UserDepartmentModel>(); ModelUtil.CopyModelToModel(this.UserInfoModel, userInfoModel); this.UserInfoModel.UserDepartmentList.ForEach( m => userInfoModel.UserDepartmentList.Add( (UserDepartmentModel)ModelUtil.CopyModelToModel(m, new UserDepartmentModel()))); // 選択行がリストのインデックス範囲内の場合 int selectNumberNum = int.Parse(inputModel.SelectNumber); if (selectNumberNum >= 0 && selectNumberNum <= this.UserInfoModel.UserDepartmentList.Count-1) { userInfoModel.CurrentDepartmentCd = this.UserInfoModel.UserDepartmentList[selectNumberNum].DepartmentCd; userInfoModel.CurrentPositionCd = this.UserInfoModel.UserDepartmentList[selectNumberNum].PositionCd; } else { // 存在しない場合はエラー this.ServiceMessage.AddErrorMessage(null, string.Format(Resources.MEI0009 , ModelUtil.GetDisplayName<DepartmentSelectInputModel>(m => m.SelectNumber))); } return userInfoModel; }