示例#1
0
    /// <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);
        }
示例#3
0
    /// <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);
                    }
                }
            }
        }
示例#5
0
        /// <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);
        }
示例#6
0
    /// <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);
                    }
                }
            }
        }
示例#8
0
    /// <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;
    }