/// <summary>バッチ更新ボタン</summary> /// <param name="fxEventArgs">イベントハンドラの共通引数</param> /// <returns>URL</returns> protected string UOC_btnBatUpd_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 _3TierParameterValue parameterValue = new _3TierParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "BatchUpdate", (string)Session["DAP"], (MyUserInfo)UserInfoHandle.GetUserInformation()); // テーブル parameterValue.TableName = "Products"; // 主キーとタイムスタンプ列 parameterValue.AndEqualSearchConditions = new Dictionary <string, object>(); parameterValue.AndEqualSearchConditions.Add("ProductID", ""); // DataTableを設定 parameterValue.Obj = (DataTable)Session["SearchResult"]; // B層を生成 _3TierEngine b = new _3TierEngine(); // データ取得処理を実行 _3TierReturnValue returnValue = (_3TierReturnValue)b.DoBusinessLogic( (BaseParameterValue)parameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 結果表示 //this.lblResult.Text = returnValue.Obj.ToString() + "件更新しました。"; // 画面遷移しない。 return(string.Empty); }
/// <summary>ユーザ情報を取得する</summary> /// <returns>ユーザ情報</returns> private MyUserInfo GetUserInfo() { MyUserInfo ui = (MyUserInfo)UserInfoHandle.GetUserInformation(); // 再取得する。 if (ui == null) { // Cookie認証チケット HttpCookie authCookie = Context.Request.Cookies["formauth"]; if (authCookie == null) // 認証チケットがない場合 { // ダミーのユーザ情報を設定する。 ui = new MyUserInfo("未認証", Request.UserHostAddress); } else // 認証チケットがある場合 { // ユーザ情報を再取得する。 // 認証チケット FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); // ユーザ名を復元 ui = new MyUserInfo(authTicket.Name, Request.UserHostAddress); } } return(ui); }
/// <summary>削除ボタン</summary> /// <param name="fxEventArgs">イベントハンドラの共通引数</param> /// <returns>URL</returns> protected string UOC_btnDelete_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 _3TierParameterValue parameterValue = new _3TierParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "DeleteRecord", (string)Session["DAP"], (MyUserInfo)UserInfoHandle.GetUserInformation()); // テーブル parameterValue.TableName = "Products"; // 主キーとタイムスタンプ列 // 主キー列 parameterValue.AndEqualSearchConditions = (Dictionary <string, object>)Session["PrimaryKeyAndTimeStamp"]; // タイムスタンプ列 // B層を生成 _3TierEngine b = new _3TierEngine(); // データ取得処理を実行 _3TierReturnValue returnValue = (_3TierReturnValue)b.DoBusinessLogic( (BaseParameterValue)parameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 結果表示 this.lblResult.Text = returnValue.Obj.ToString() + "件削除しました。"; // 画面遷移しない。 return(string.Empty); }
/// <summary>ユーザ情報を取得する</summary> private async Task GetUserInfo() { // セッションステートレス対応 if (MyHttpContext.Current.Session == null) { // SessionがOFFの場合 } else { // 取得を試みる。 this.UserInfo = UserInfoHandle.GetUserInformation <MyUserInfo>(); // nullチェック if (this.UserInfo == null) { AuthenticateResult authenticateInfo = await AuthenticationHttpContextExtensions.AuthenticateAsync( MyHttpContext.Current, CookieAuthenticationDefaults.AuthenticationScheme); //await MyHttpContext.Current.Authentication.GetAuthenticateInfoAsync( // CookieAuthenticationDefaults.AuthenticationScheme); // 古い //System.Threading.Thread.CurrentPrincipal.Identity.Name; // .NET Framework string userName = authenticateInfo.Principal?.Identity?.Name; // null 条件演算子 if (string.IsNullOrEmpty(userName)) { // 未認証状態 this.UserInfo = new MyUserInfo("未認証", (new GetClientIpAddress()).GetAddress()); } else { // 認証状態 this.UserInfo = new MyUserInfo(userName, (new GetClientIpAddress()).GetAddress()); // 必要に応じて認証チケットのユーザ名からユーザ情報を復元する。 // ★ 必要であれば、他の業務共通引継ぎ情報などをロードする。 // ・・・ // 復元したユーザ情報をセット UserInfoHandle.SetUserInformation(this.UserInfo); } } } }
/// <summary>ユーザ情報を取得する</summary> /// <remarks>他から呼び出し可能に変更(static)</remarks> public static MyUserInfo GetUserInfo2() { MyUserInfo userInfo = null; // セッションステートレス対応 if (HttpContext.Current.Session == null) { // SessionがOFFの場合 } else { // 取得を試みる。 userInfo = (MyUserInfo)UserInfoHandle.GetUserInformation(); } // nullチェック if (userInfo == null) { // nullの場合、仮の値を生成 / 設定する。 string userName = System.Threading.Thread.CurrentPrincipal.Identity.Name; if (userName == null || userName == "") { // 未認証状態 userInfo = new MyUserInfo("未認証", HttpContext.Current.Request.UserHostAddress); } else { // 認証状態 userInfo = new MyUserInfo(userName, HttpContext.Current.Request.UserHostAddress); // 必要に応じて認証チケットの // ユーザ名からユーザ情報を復元する。 } } else { // nullで無い場合、取得した値を設定する。 } // ★ 必要であれば、他の業務共通引継ぎ情報などをロードする。 // 値を戻す。 return(userInfo); }
/// <summary>更新ボタン</summary> /// <param name="fxEventArgs">イベントハンドラの共通引数</param> /// <returns>URL</returns> protected string UOC_btnUpdate_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 _3TierParameterValue parameterValue = new _3TierParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "UpdateRecord", (string)Session["DAP"], (MyUserInfo)UserInfoHandle.GetUserInformation()); // テーブル parameterValue.TableName = "Products"; // 主キーとタイムスタンプ列 // 主キー列 parameterValue.AndEqualSearchConditions = (Dictionary <string, object>)Session["PrimaryKeyAndTimeStamp"]; // タイムスタンプ列 // 更新値(TimeStamp列は外す。 parameterValue.InsertUpdateValues = new Dictionary <string, object>(); //parameterValue.InsertUpdateValues.Add("ProductID", this.txtProductID.Text); parameterValue.InsertUpdateValues.Add("ProductName", this.txtProductName.Text); parameterValue.InsertUpdateValues.Add("SupplierID", this.txtSupplierID.Text); parameterValue.InsertUpdateValues.Add("CategoryID", this.txtCategoryID.Text); parameterValue.InsertUpdateValues.Add("QuantityPerUnit", this.txtQuantityPerUnit.Text); parameterValue.InsertUpdateValues.Add("UnitPrice", this.txtUnitPrice.Text); parameterValue.InsertUpdateValues.Add("UnitsInStock", this.txtUnitsInStock.Text); parameterValue.InsertUpdateValues.Add("UnitsOnOrder", this.txtUnitsOnOrder.Text); parameterValue.InsertUpdateValues.Add("ReorderLevel", this.txtReorderLevel.Text); parameterValue.InsertUpdateValues.Add("Discontinued", this.txtDiscontinued.Text); // B層を生成 _3TierEngine b = new _3TierEngine(); // データ取得処理を実行 _3TierReturnValue returnValue = (_3TierReturnValue)b.DoBusinessLogic( (BaseParameterValue)parameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 結果表示 this.lblResult.Text = returnValue.Obj.ToString() + "件更新しました。"; // 画面遷移しない。 return(string.Empty); }
/// <summary>ユーザ情報を取得する</summary> private void GetUserInfo() { // セッションステートレス対応 if (this.HttpContext.Session == null) { // SessionがOFFの場合 } else { // 取得を試みる。 this.UserInfo = (MyUserInfo)UserInfoHandle.GetUserInformation(); // nullチェック if (this.UserInfo == null) { // nullの場合、仮の値を生成 / 設定する。 string userName = System.Threading.Thread.CurrentPrincipal.Identity.Name; if (userName == null || userName == "") { // 未認証状態 this.UserInfo = new MyUserInfo("未認証", this.HttpContext.Request.UserHostAddress); } else { // 認証状態 this.UserInfo = new MyUserInfo(userName, this.HttpContext.Request.UserHostAddress); // 必要に応じて認証チケットのユーザ名からユーザ情報を復元する。 // ★ 必要であれば、他の業務共通引継ぎ情報などをロードする。 // ・・・ // 復元したユーザ情報をセット UserInfoHandle.SetUserInformation(this.UserInfo); } } } }
/// <summary> /// ページロードのUOCメソッド(個別:初回ロード) /// </summary> /// <remarks> /// 実装必須 /// </remarks> protected override void UOC_FormInit() { // フォーム初期化(初回ロード)時に実行する処理を実装する // TODO: // 詳細表示処理 // 引数クラスを生成 _3TierParameterValue parameterValue = new _3TierParameterValue( this.ContentPageFileNoEx, "FormInit", "SelectRecord", (string)Session["DAP"], (MyUserInfo)UserInfoHandle.GetUserInformation()); // テーブル parameterValue.TableName = "Products"; // 主キーとタイムスタンプ列 // 主キー列 parameterValue.AndEqualSearchConditions = (Dictionary <string, object>)Session["PrimaryKeyAndTimeStamp"]; // タイムスタンプ列 // B層を生成 _3TierEngine b = new _3TierEngine(); // データ取得処理を実行 _3TierReturnValue returnValue = (_3TierReturnValue)b.DoBusinessLogic( (BaseParameterValue)parameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 編集状態の初期化 // 値 this.txtProductID.Text = returnValue.Dt.Rows[0]["ProductID"].ToString(); this.txtProductName.Text = returnValue.Dt.Rows[0]["ProductName"].ToString(); this.txtSupplierID.Text = returnValue.Dt.Rows[0]["SupplierID"].ToString(); this.txtCategoryID.Text = returnValue.Dt.Rows[0]["CategoryID"].ToString(); this.txtQuantityPerUnit.Text = returnValue.Dt.Rows[0]["QuantityPerUnit"].ToString(); this.txtUnitPrice.Text = returnValue.Dt.Rows[0]["UnitPrice"].ToString(); this.txtUnitsInStock.Text = returnValue.Dt.Rows[0]["UnitsInStock"].ToString(); this.txtUnitsOnOrder.Text = returnValue.Dt.Rows[0]["UnitsOnOrder"].ToString(); this.txtReorderLevel.Text = returnValue.Dt.Rows[0]["ReorderLevel"].ToString(); this.txtDiscontinued.Text = returnValue.Dt.Rows[0]["Discontinued"].ToString(); // 編集 this.txtProductID.ReadOnly = true; this.txtProductName.ReadOnly = true; this.txtSupplierID.ReadOnly = true; this.txtCategoryID.ReadOnly = true; this.txtQuantityPerUnit.ReadOnly = true; this.txtUnitPrice.ReadOnly = true; this.txtUnitsInStock.ReadOnly = true; this.txtUnitsOnOrder.ReadOnly = true; this.txtReorderLevel.ReadOnly = true; this.txtDiscontinued.ReadOnly = true; // 背景色 this.txtProductID.BackColor = System.Drawing.Color.LightGray; this.txtProductName.BackColor = System.Drawing.Color.LightGray; this.txtSupplierID.BackColor = System.Drawing.Color.LightGray; this.txtCategoryID.BackColor = System.Drawing.Color.LightGray; this.txtQuantityPerUnit.BackColor = System.Drawing.Color.LightGray; this.txtUnitPrice.BackColor = System.Drawing.Color.LightGray; this.txtUnitsInStock.BackColor = System.Drawing.Color.LightGray; this.txtUnitsOnOrder.BackColor = System.Drawing.Color.LightGray; this.txtReorderLevel.BackColor = System.Drawing.Color.LightGray; this.txtDiscontinued.BackColor = System.Drawing.Color.LightGray; }