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