Exemplo n.º 1
0
        public async Task <ActionResult> SelectAll_DSQL(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.OrderColumn   = model.DdlOrderColumn;
                testParameterValue.OrderSequence = model.DdlOrderSequence;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // Ajax.BeginFormでは、UpdateTargetIdで指定した
                    // ターゲット以外を更新する場合、JavaScriptでの対応が必要。
                    // #ここではjQueryを使用している。
                    string scriptText = "$('#lblMessage').text('" + message + "');";
                    return(JavaScript(scriptText));
                }
                else
                {
                    // 結果(正常系)
                    model.shippers = new DsNorthwind.ShippersDataTable();
                    DataTable dt = (DataTable)testReturnValue.Obj;

                    foreach (DataRow row in dt.Rows)
                    {
                        DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow();
                        srow.ShipperID   = int.Parse(row[0].ToString());
                        srow.CompanyName = row[1].ToString();
                        srow.Phone       = row[2].ToString();

                        model.shippers.Rows.Add(srow);
                    }
                }
            }
            // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。
            return(PartialView("_ChartView", model));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> SelectAll_DSQL(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.OrderColumn   = model.DdlOrderColumn;
                testParameterValue.OrderSequence = model.DdlOrderSequence;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // メッセージを設定。
                    model.Message = message;
                }
                else
                {
                    // 結果(正常系)
                    model.shippers = new DsNorthwind.ShippersDataTable();
                    DataTable dt = (DataTable)testReturnValue.Obj;

                    foreach (DataRow row in dt.Rows)
                    {
                        DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow();
                        srow.ShipperID   = int.Parse(row[0].ToString());
                        srow.CompanyName = row[1].ToString();
                        srow.Phone       = row[2].ToString();

                        model.shippers.Rows.Add(srow);
                    }
                }
            }

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
        public async Task <ActionResult> Select(CrudViweModel model)
        {
            string scriptText = "";

            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.Shipper = model.Shipper;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(
                    testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // メッセージを設定。
                    model.Message = message;

                    // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。
                    return(PartialView("_MessageView", model));
                }
                else
                {
                    // 結果(正常系)
                }

                // Ajax.BeginFormでは、UpdateTargetIdで指定した
                // ターゲット以外を更新する場合、JavaScriptでの対応が必要。
                // #ここではjQueryを使用している。
                ShipperViweModel svm = (ShipperViweModel)testReturnValue.Obj;
                scriptText = string.Format(
                    "$('#Shipper_ShipperID').val('{0}');$('#Shipper_CompanyName').val('{1}');$('#Shipper_Phone').val('{2}');",
                    svm.ShipperID, svm.CompanyName, svm.Phone);
            }

            return(JavaScript(scriptText));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Select(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.ShipperID = int.Parse(model.ShipperID);

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // メッセージを設定。
                    model.Message = message;
                }
                else
                {
                    // 結果(正常系)
                    ModelState.Clear(); // ErrorのClearをしないと何故か設定できない。
                    model.ShipperID   = testReturnValue.ShipperID.ToString();
                    model.CompanyName = testReturnValue.CompanyName;
                    model.Phone       = testReturnValue.Phone;
                }
            }

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> SelectAll_DSQL(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.OrderColumn   = model.DdlOrderColumn;
                testParameterValue.OrderSequence = model.DdlOrderSequence;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(
                    testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // メッセージを設定。
                    model.Message = message;
                }
                else
                {
                    // 結果(正常系)
                    model.Shippers = (List <ShipperViweModel>)testReturnValue.Obj;
                }
            }

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> Update(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.ShipperID   = int.Parse(model.ShipperID);
                testParameterValue.CompanyName = model.CompanyName;
                testParameterValue.Phone       = model.Phone;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;
                }
                else
                {
                    // 結果(正常系)
                    message = testReturnValue.Obj.ToString() + "件更新";
                }

                // メッセージを設定。
                model.Message = message;
            }

            // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。
            return(PartialView("_MessageView", model));
        }
Exemplo n.º 7
0
        public ActionResult PreventDoubleSubmission(CrudViweModel model)
        {
            System.Threading.Thread.Sleep(5 * 1000);

            // メッセージを設定。

            // 確認用のカウンタ
            if (Session["cnt"] == null)
            {
                Session["cnt"] = 1;
            }
            else
            {
                Session["cnt"] = ((int)Session["cnt"]) + 1;
            }

            model.Message = "PreventDoubleSubmission:" + Session["cnt"].ToString();

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
        public ActionResult PreventDoubleSubmission(CrudViweModel model)
        {
            System.Threading.Thread.Sleep(5 * 1000);

            // メッセージを設定。

            // 確認用のカウンタ
            if (Session["cnt"] == null)
            {
                Session["cnt"] = 1;
            }
            else
            {
                Session["cnt"] = ((int)Session["cnt"]) + 1;
            }

            model.Message = "PreventDoubleSubmission:" + Session["cnt"].ToString();

            // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。
            return(PartialView("_MessageView", model));
        }
        public async Task <ActionResult> SelectAll_DS(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(
                    testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // Ajax.BeginFormでは、UpdateTargetIdで指定した
                    // ターゲット以外を更新する場合、JavaScriptでの対応が必要。
                    // #ここではjQueryを使用している。
                    string scriptText = "$('#lblMessage').text('" + message + "');";
                    return(JavaScript(scriptText));
                }
                else
                {
                    // 結果(正常系)
                    model.Shippers = (List <ShipperViweModel>)testReturnValue.Obj;
                }
            }

            // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。
            return(PartialView("_ChartView", model));
        }
Exemplo n.º 10
0
        public async Task <ActionResult> SelectCount(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;
                }
                else
                {
                    // 結果(正常系)
                    message = testReturnValue.Obj.ToString() + "件のデータがあります";
                }

                // メッセージを設定。
                model.Message = message;
            }

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
Exemplo n.º 11
0
        public ActionResult PreventDoubleSubmission(CrudViweModel model)
        {
            System.Threading.Thread.Sleep(5 * 1000);

            // メッセージを設定。

            // 確認用のカウンタ
            int?temp = HttpContext.Session.GetInt32("cnt");

            if (temp.HasValue)
            {
                HttpContext.Session.SetInt32("cnt", temp.Value + 1);
            }
            else
            {
                HttpContext.Session.SetInt32("cnt", 1);
            }
            temp = HttpContext.Session.GetInt32("cnt");

            model.Message = "PreventDoubleSubmission:" + temp.Value.ToString();

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }
Exemplo n.º 12
0
 public ActionResult Index(CrudViweModel model)
 {
     return(View(model));
 }
Exemplo n.º 13
0
        public async Task <IActionResult> Select(CrudViweModel model)
        {
            if (ModelState.IsValid)
            {
                // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する
                TestParameterValue testParameterValue
                    = new TestParameterValue(this.ControllerName, "-", this.ActionName,
                                             model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo);

                // 動的SQLの要素を設定
                testParameterValue.Shipper = model.Shipper;

                // B層呼出し+都度コミット
                LayerB          layerB          = new LayerB();
                TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(
                    testParameterValue, this.SelectIsolationLevel(model.DdlIso));

                // 結果表示するメッセージ
                string message = "";

                if (testReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    message  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";";
                    message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";";
                    message += "ErrorInfo:" + testReturnValue.ErrorInfo;

                    // メッセージを設定。
                    model.Message = message;
                }
                else
                {
                    // 結果(正常系)
                    ModelState.Clear(); // ErrorのClearをしないと何故か設定できない。

                    #region PocoToPocoのテストコード

                    ShipperViweModel     svm  = null;
                    TestShipperViweModel tsvm = null;

                    // テスト1
                    svm = (ShipperViweModel)BinarySerialize.DeepClone(model.Shipper);

                    if (testReturnValue.Obj2 != null)
                    {
                        PocoToPoco.Map <TestShipperViweModel, ShipperViweModel>(
                            (TestShipperViweModel)testReturnValue.Obj2, svm,
                            // mapの書き方は、Key-Valueでdst-srcのproperty field名を書く
                            new Dictionary <string, string>()
                        {
                            { "ShipperID", "_ShipperID" },
                            { "CompanyName", "_CompanyName" },
                            { "Phone", "_Phone" }
                        });

                        Debug.WriteLine("svm:" + ObjectInspector.Inspect(svm));
                    }

                    // テスト2
                    tsvm = PocoToPoco.Map <ShipperViweModel, TestShipperViweModel>(
                        (ShipperViweModel)testReturnValue.Obj, null,
                        // mapの書き方は、Key-Valueでdst-srcのproperty field名を書く
                        new Dictionary <string, string>()
                    {
                        { "_ShipperID", "ShipperID" },
                        { "_CompanyName", "CompanyName" },
                        { "_Phone", "Phone" }
                    });
                    Debug.WriteLine("tsvm:" + ObjectInspector.Inspect(tsvm));

                    #endregion

                    model.Shipper = (ShipperViweModel)testReturnValue.Obj;
                }
            }

            // 再表示(Html.BeginFormでは、全体更新。
            return(View("Index", model));
        }